NoNameNeeded Posted June 24, 2017 Posted June 24, 2017 Is there a way to use newer user32.dll and/or user.exe files in Windows 95? By newer I mean the Win98 counterparts. I have several applications which would require the Win98 versions of these files (especially user32.dll) and I've come across a program called cff explorer which enables me to change some stuff in a file and there's a section called import directory and there's a list of files which are used by this exe file or dll file or whatever. So I copied the user32.dll from Win98 over to Win95 and renamed it to user98.dll and changed the file name in the import directory section and hoped this would help the application to get started, but it didn't. I'm obviously not a programmer, I don't know anything about it, I just tinker with stuff I don't know anything about so I didn't really expect it to work anyway but is this a lost cause or is there a fairly easy way to get applications to use different system files than the ones they would normally use?
rloew Posted June 24, 2017 Posted June 24, 2017 Your method works but USER98.DLL itself apparently failed to load. You will have to check it for missing Imports. Even so it may not be compatible.
NoNameNeeded Posted June 24, 2017 Author Posted June 24, 2017 How do I check it for missing imports? When I try to launch an application (which needs this newer system file) there is an error message telling me that the dll file cannot be started.
NoNameNeeded Posted June 26, 2017 Author Posted June 26, 2017 Hm ok. In my case, I already knew which function was missing because it was part of the error message. So I used "Import adder" to import that function but when I try to launch the application it takes a while until an error message pops up, telling me something about an illegal operation and then it crashes. In the details section it refers to kernel32.dll Probably not a good sign.
NoNameNeeded Posted June 26, 2017 Author Posted June 26, 2017 P.S. Is there a way to add a function to an empty dll file and to link that empty dll file to the executable file (just as I did with the user98.dll file)?
rloew Posted June 26, 2017 Posted June 26, 2017 No. Your method replaces an entire DLLs set of Imports so you have to provide all the other Functions of the DLL as well. I have a program that can redirect individual Imports to alternative DLLs or names. I also have a tool that can add a Redirecting Export to the original DLL that can then point to your single Function DLL.
ABCDEFG Posted June 26, 2017 Posted June 26, 2017 @NoNameNeeded Yes, you can use freeware program "ExportTableTester" for this. http://www.woodmann.com/forum/showthread.php?15720-Export-Table-Tester
NoNameNeeded Posted June 26, 2017 Author Posted June 26, 2017 What is this program and/or tool called and would it be useful for someone like me who knows next to nothing about this stuff?
ABCDEFG Posted June 26, 2017 Posted June 26, 2017 Hmm, with this tool you can add redirecting exported funuctions to dll skeleton, you should check the link. Maybe i will make small video tutorial to show how to use this tool.
NoNameNeeded Posted June 26, 2017 Author Posted June 26, 2017 I actually meant rloew but your tool is also interesting. I copied the function from the newer user32.dll file to the one from Win95 and it works to some extent. It's extremely unstable, so there are a lot of error messages (all referring to user32.dll) and the application crashes and explorer.exe crashes etc. but it does work to some extent. Nevertheless I assume it would make more sense not to modify the original user32.dll but find an empty dll file that I can copy that function into and then link the application to this new dll file. But where do I get an empty dll file from? (and no, just creating any file and changing its extension to dll doesn't work)
rloew Posted June 26, 2017 Posted June 26, 2017 My DLLHOOK Program intercepts the system Import resolver and provides an alternative Address. You can redirect the problem Import to your replacement DLL using a DLLHOOK.INI File. My MODEXP Program allows you to add, change, or delete Exports. You can add a Redirection Export to the original pointing to your replacement DLL. A KERNEL32.DLL Patch to fix a bug, is needed in most cases under Windows 98 for this to work. You would probably need to Compile a Replacement DLL unless you can find a suitable Stub or Function in some existing DLL.
ABCDEFG Posted June 26, 2017 Posted June 26, 2017 @NoNameNeeded 1. The tool is not my, but it is very useful and free. Other tool mentioned is commercial. 2. Of course it can not be empty file and i think you should read this: https://en.wikipedia.org/wiki/Portable_Executable and https://en.wikipedia.org/wiki/Dynamic-link_library 3. here is small dll file for you in attachment... dllfile.7z
dencorso Posted June 26, 2017 Posted June 26, 2017 1 hour ago, ABCDEFG said: Maybe i will make small video tutorial to show how to use this tool. Please, do it. I can think of varous members who could benefit from such a tutorial.
Dibya Posted June 26, 2017 Posted June 26, 2017 Just now, ABCDEFG said: @NoNameNeeded Yes, you can use freeware program "ExportTableTester" for this. http://www.woodmann.com/forum/showthread.php?15720-Export-Table-Tester Not only you can add forward but you can embed inside binary. It is equivalent to MODEXP by rloew and pemaker by blackwingcat.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now