我有一个test1.exe使用示例库的示例程序test2.dll。
test.dll包含相同类型的A()功能B()。test1.exe调用A然后退出。
在这里,我找到了对A():
(http://i.stack.imgur.com/5W9Jd.jpg)的调用
现在,如果我没记错的话,我需要88FDFFFF用正确的偏移量替换B(),但是我如何计算它以便B()调用它而不是A()?
我有一个test1.exe使用示例库的示例程序test2.dll。
test.dll包含相同类型的A()功能B()。test1.exe调用A然后退出。在这里,我找到了对A():
(http://i.stack.imgur.com/5W9Jd.jpg)的调用
现在,如果我没记错的话,我需要88FDFFFF用正确的偏移量替换B(),但是我如何计算它以便B()调用它而不是A()?
如果这是在 x86 调用相关指令中,则偏移值是通过从目标地址中减去调用之后的指令地址(= 调用指令位置 + 5 个字节)来计算的。因此,您需要将偏移量修补为地址(B)-地址(调用指令+5)。
如果b在 test1.exe 中导入,则很容易,否则您必须使用 LoadLibrary 和 GetProcAddress。
按ctrl+N一下看是否b是进口的。
我建议先学习 asm 基础知识,然后使用 HIEW hexeditor/disassembler 来更改简单的代码。