Ein kleines Beispiel welches zeigt wie man WinApis hooken kann, mittels der von Microsoft so beabsichtigten Hotpatch-Methode
(Eine bessere Erläuterung dazu hier
Kurz erklärt sind die ersten beiden Bytes der Api mov edi, edi, was überhaupt nichts macht. Und vor der Funktion sind mindestens 5 Bytes frei. Man überschreibt also die ersten beiden Bytes mit einem jmp $ - 5, also 5 zurück. Und in die 5 bytes plaziert man dann die lange jmp instruction zu deiner Hooking-Funktion. Das hat den kleinen Vorteil, dass man keine Trampolin-Func braucht sondern einfach (OriginaleAddresse + 2) aufrufen kann um den Jmp zu skippen.
Sollte so in jedem 32bit Prozess mit den allermeisten Windows Apis funktionieren.
Eine Ausnahme sind die syscall-wrapper in ntdll.dll, z. B. NtQuerySystemInformation.
Zu denen kann ich aber sonst irgendwann mal was posten.