1

我有一个test1.exe使用示例库的示例程序test2.dll

  • test.dll包含相同类型的A()功能B()
  • test1.exe调用A然后退出。

在这里,我找到了对A()test.exe 调用的行 Ahttp://i.stack.imgur.com/5W9Jd.jpg)的调用

现在,如果我没记错的话,我需要88FDFFFF用正确的偏移量替换B(),但是我如何计算它以便B()调用它而不是A()

4

3 回答 3

2

如果这是在 x86 调用相关指令中,则偏移值是通过从目标地址中减去调用之后的指令地址(= 调用指令位置 + 5 个字节)来计算的。因此,您需要将偏移量修补为地址(B)-地址(调用指令+5)。

于 2012-12-03T04:24:52.693 回答
0

如果b在 test1.exe 中导入,则很容易,否则您必须使用 LoadLibrary 和 GetProcAddress。

ctrl+N一下看是否b是进口的。

于 2016-03-14T15:25:12.460 回答
-1

我建议先学习 asm 基础知识,然后使用 HIEW hexeditor/disassembler 来更改简单的代码。

于 2012-12-04T18:31:40.453 回答