Öhm. Könnte mich bitte mal jemand aufklären was Assarbad da versucht zu machen?
Ich vermute mal, dass er einen IAT Hook basteln will, um alle Aurufe einer bestimmten
API aus der kernel32.dll heraus auf einen eigenen Callback umzulenken
Jedes Modul (.exe, .dll, etc) besitzt eine eigene Import Address Table (IAT), über die Funktionen aus anderen Modulen importiert werden, da deren Position ja nicht statisch ist. Der Windows Loader füllt diese Tabelle beim Laden mit der effektiven Adresse. Ein Aufruf von
MessageBoxW
ist dann auf Assembler-Ebene eigentlich ein
CALL [IAT.FuncPtr.MessageBoxW]
(Dereferenzierung beachten). Wenn man jetzt den Zeiger im entsprechenden Feld mit der Adresse einer eigenen Funktion (die den gleichen Prototyp besitzt) ersetzt, kann man alle Aufrufe dieser Funktion abfangen.