Also bei mir fängt kernel32.Sleep so an:
Code:
8BFF mov edi, edi
55 push ebp
8BEC mov ebp, esp
6A00 push 0
Dein Detour überschreibt die ersten 5 Bytes - diese sind aber wichtig, da sie den Stackframe erzeugen.
Wie Brechi schon schrieb: du kannst nicht einfach Maschinencode überschreiben, ohne ihn analysiert zu haben. Dazu brauchst du einen Disassembler oder zumindest ein vereinfachte Abwandlung davon (z.B.
hier).
Du musst also mehr oder minder wissen, was der Code macht, den du überschreibst - dann kannst du den überschriebenen Bereich sichern (und ggf. relozieren) und ab einer gewissen Stelle im Originalcode weitermachen.