【发布时间】:2017-07-08 03:53:29
【问题描述】:
我将 CheatEngine 用作调试器(并为此得到很多废话)。当我找到地址时,我总是根据指令开始处的偏移量(例如 program.exe+402C0)将它们写下来。如果能够通过这种引用位置的方法使用 goto 函数,那就太好了;有没有办法做到这一点?
【问题讨论】:
我将 CheatEngine 用作调试器(并为此得到很多废话)。当我找到地址时,我总是根据指令开始处的偏移量(例如 program.exe+402C0)将它们写下来。如果能够通过这种引用位置的方法使用 goto 函数,那就太好了;有没有办法做到这一点?
【问题讨论】:
根据 IDA Pro 的文档:
如果输入的 [goto] 字符串不能被识别为十六进制或位置名称,IDA 将尝试使用当前脚本解释器将其解释为表达式。默认解释器是 IDC。
因此,您可以在 IDC 解释器中定义一个全局变量(使用 IDA 视图底部的栏),用于标识模块的基地址:
extern ModuleBaseAddress;
ModuleBaseAddress = 0x400000; // Example base address
然后,无论何时您想要转到基地址 + 偏移量,您只需打开跳转窗口(使用 g 键)并输入:
ModuleBaseAddress + 0x1000 // 0x1000 is your offset
【讨论】: