2009-07-24 12 views
24

Próbuję zrobić dokładnie to, co robi LD_PRELOAD, tj. Wstępnie wczytać udostępnioną bibliotekę lub pliki DLL w systemie Windows do danego programu, aby zastąpić określone funkcje.LD_PRELOAD odpowiednik dla systemu Windows do wstępnego ładowania bibliotek współdzielonych

Czy istnieje odpowiednik dla systemu Windows w wersji LD_PRELOAD?

Nie mam żadnych konkretnych funkcji na uwadze. Wiem tylko, że jest to możliwe w Linuksie i jestem ciekawy, jak można przeciążać macierzystą bibliotekę DLL w systemie Windows.

+1

Co chcesz przez to osiągnąć? Nie ma bezpośredniego odpowiednika. –

+1

Jaką funkcję chcesz przeciążać? –

+1

Czy jest to również dla zespołu zarządzanego .net lub dla rodzimej biblioteki dll? –

Odpowiedz

14

AppInit_DLLs.

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

Ale zobacz także:

AppInit_DLLs powinna zostać zmieniona Deadlock_Or_Crash_Randomly_DLLs

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

Można również zajrzeć do "wtrysk" DLL. Cztery podejścia (w tym AppInint_DLLs) opisane są tutaj:

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

+0

Drugi link wydaje się być uszkodzony: domyślam się, że poprawny link jest teraz: https://blogs.msdn.microsoft.com/oldnewthing/20071213-00/?p=24183/ – Markus

+0

@Markus :-) – Ben

Powiązane problemy