API-Hooking ist eigentlich vom Prinzip her einfach zu verstehen:
Du ersetzt eine Funktion in einem (meist fremden) Prozess, durch eine andere, eigene (die in einer
dll steht, welche "gezwungenermaßen" vom fremden prozess geladen wird ("
DLL-Injection")). Diese eigene Funktion kann dann ggf. die Parameter verändern, die original-funktion aufrufen, und den return-value verändern (man kann natürlich auch irgendetwas anderes machen ...).
Wie das im detail funktioniert, kannst du dir anhand des Source-codes der AfxCodeHook
API-Hook-Library von
http://www.iamaphex.net/ zu gemüte führen. Allerdings ist dieser doch noch relativ schwer zu duchblicken ... ^^. Ich persönlich finde diese Hook-Library aber nicht so toll, da sie ettliche funktionen, die mir in der MadCodeHook-Lib zur verfügung stehen nicht bietet (z.B.
IPC).
Ich beschäftige mich mit
API-Hooking schon seit längerem, also, wenn ich dir irgendwie weiterhelfen soll, frag mich, und ich werde es versuchen
.
ciao, Philipp