LD_PRELOAD equivalent for Windows to preload shared libraries

dm76 picture dm76 · Jul 24, 2009 · Viewed 15.7k times · Source

I'm trying to do exactly what LD_PRELOAD does, i.e. preload a shared library or DLL files on Windows to a given program to override certain functions.

Is there a LD_PRELOAD equivalent for Windows?

I don't have any specific functionalities in mind. I just know that this is possible on Linux, and I'm curious about how overloading a native DLL can be done on Windows.

Answer

Ben picture Ben · Mar 11, 2011

AppInit_DLLs.

http://support.microsoft.com/kb/197571

But see also:

AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs

https://blogs.msdn.microsoft.com/oldnewthing/20071213-00/?p=24183/

You may also want to look into "DLL Injection". Four approaches (including AppInint_DLLs) are described here:

http://en.wikipedia.org/wiki/DLL_Injection