Search code examples
shared-librariesipc

LD_PRELOAD equivalent for Windows to preload shared libraries


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.


Solution

  • AppInit_DLLs.

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

    But see also:

    AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs

    https://devblogs.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