Если вы используете OllyDbg, ZwOpenKey
начинается с 5 байтов MOV EAX, 77
.
Вы можете перезаписать эти байты следующим образом: JMP _myZwOpenKey
, затем оттуда вы можете делать что угодно со значениями в стеке, восстанавливать все регистры, затем делать JMP 7C90D5B5
, который является адресом ZwOpenKey
+ 5 байтов.
CPU Disasm
Address Hex dump Command Comments
7C90D5AF 90 NOP
7C90D5B0 /$ B8 77000000 MOV EAX,77 ; ntdll.ZwOpenKey(guessed rg1,Arg2,Arg3)
7C90D5B5 |. BA 0003FE7F MOV EDX,7FFE0300
7C90D5BA |. FF12 CALL DWORD PTR DS:[EDX]
7C90D5BC \. C2 0C00 RETN 0C
Я обычно делаю это в ассемблере таким образом, что мне не нужно много возиться с приведением типов и всем этим. Надеюсь, это поможет.