2009-07-31 6 views
2

Ist es möglich, Systemfunktionen zu ersetzen, wie es möglich ist, unter Linux und Solaris mit der LD_PRELOADInterposer auf Windows

Zum Beispiel durch die Umgebungsvariable: LD_PRELOAD =/path/to/mymalloc.so

Ich hätte meine Ersatz-malloc-Funktionen statt in der C-Runtime bereits in den Systembibliotheken installiert. Alle anderen Funktionen in den System-DLLs würden wie normal ausgeführt werden.

Antwort

2

Microsoft Research hat eine Bibliothek namens Detours, die Sie Win32-API-Aufrufe abfangen können.

Detours ist eine Bibliothek zum Instrumentieren beliebiger Win32-Funktionen auf x86-, x64- und IA64-Maschinen. Detours fängt Win32-Funktionen ab, indem der In-Memory-Code für Zielfunktionen neu geschrieben wird. Das Detours-Paket enthält auch Dienstprogramme zum Anhängen beliebiger DLLs und Datensegmente (die als Payloads bezeichnet werden) an beliebige Win32-Binärdateien.

1

Wenn Detours (wie bereits erwähnt) ist keine Option - dann könnten Sie einen Blick auf WinAPI Override nehmen. Es wird aktiv aufrechterhalten. Beachten Sie, dass nur die 32-Bit-Version verfügbar ist.