在别人的程序的任意位置加上调用自己函数的代码,且不影响原程序执行的方法

原理和HOOK是一样的,都是通过WriteProcessMemory写入代码,但这里我们想任意位置加入代码,为了不影响原程序的执行,执行完我们的函数后,必须恢复原有程序的寄存器和堆栈的值,所以第一句话就是 pushad将所有寄存器压栈,执行完我们的函数跳回原有程序后,第一句就是pop eax,因为跳转代码是mov eax,xxx jmp eax修改了eax:

伪代码:

根据伪代码用delphi写成的函数:

我们自己的函数:

调用方法:

说明:这里的addrBeforeWriteCard等于baseAddr+$8

你可能感兴趣的:(Delphi)