2009-07-24 4 views
24

Ich versuche genau das zu tun, was LD_PRELOAD tut, d. H. Eine gemeinsam genutzte Bibliothek oder DLL-Dateien unter Windows auf ein bestimmtes Programm laden, um bestimmte Funktionen zu überschreiben.LD_PRELOAD-Äquivalent für Windows zum gemeinsamen Laden freigegebener Bibliotheken

Gibt es eine LD_PRELOAD Entsprechung für Windows?

Ich habe keine spezifischen Funktionen im Hinterkopf. Ich weiß nur, dass dies unter Linux möglich ist, und ich bin neugierig, wie eine native DLL unter Windows überladen werden kann.

+1

Was wollen Sie erreichen? Es gibt kein direktes Äquivalent –

+1

Welche Funktionalität möchten Sie überlasten? –

+1

Ist dies auch für eine .net verwaltete Assembly oder für eine native DLL? –

Antwort

14

AppInit_DLLs.

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

Aber siehe auch:

AppInit_DLLs Deadlock_Or_Crash_Randomly_DLLs umbenannt

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

Sie auch suchen möchten in die "DLL Injection" werden sollte. Vier Ansätze (einschließlich AppInint_DLLs) werden hier beschrieben:

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

+0

Der zweite Link scheint kaputt zu sein: Ich denke der richtige Link ist jetzt: https://blogs.msdn.microsoft.com/oldnewthing/20071213-00/?p=24183/ – Markus

+0

@Markus in der Tat :-) – Ben