IDA - 无法重命名或跳转到全局变量

逆向工程 艾达
2021-06-12 13:29:54

在我正在分析的应用程序中,有一个全局变量,我知道它在程序中的用途/角色。我想重命名它,但由于某种原因我不能。

汇编代码:

.text:00537E90                 mov     edx, ds:1C968D8h
.text:00537E96                 mov     [eax], edx
.text:00537E98                 mov     ds:1C968D8h, eax

如果我将光标定位在地址 ( ds:1C968D8h) 上并尝试跳转(使用 Enter),IDA 会报错Command "JumpEnter" failed尝试使用 N 热键重命名它会导致 IDA 在该地址放置一个标签,而不是按预期重命名变量。

虽然我这样做是出于教育目的,但这是一个专有应用程序,所以我没有源代码。

我查过 Chris Eagle 的“The IDA Pro Book”,但里面似乎没有任何关于这个主题的内容。

非常感谢帮助。

2个回答

有可能这个数据所属的地址段在idb中不存在。如果此段是由操作系统级内存分配函数(如 Windows 中的 VirtualAlloc 或 VirtualAllocEx)动态创建的,则可能会发生这种情况。您可以通过在相应的 IDA 窗口中查看段地址来检查它。如果此段不存在,只需从同一段窗口中创建一个。

如果不是这样,还有另一种可能性:您的全局数据未定义为偏移量(并且不被视为地址)。将光标放在其上,按左键,按键盘上的 o 向 IDA 说它是地址。

我没有注意到的一件事变得至关重要:这个文件不是由我的 IDA 副本生成的,它是由朋友作为帮助资源提供给我的。我只是用我的 IDA 反汇编了相同的 exe,麻烦的地址现在是正确的:

在此处输入图片说明

http://i.imgur.com/AzHGbT1.png