我正在使用IDA Pro反汇编Windows DLL文件。 有一点我有一行代码说
mov esi, dword_xxxxxxxx
我需要知道dword是什么,但双击它将带我到.data页面,一切都在问号。 我如何获得应该在那里的纯文本?
如果您在IDA中看到问号,则表示在文件上的此位置(磁盘驱动器上)没有物理数据。
PE文件中的部分具有物理大小(由节标题的SizeOfRawData字段给出)。 一旦通过Windows的加载程序(该大小由区段标题的VirtualSize字段给出)映射到进程内存,该物理大小(在磁盘上)可能与该区段的大小不同。
因此,如果VirtualSize
字段大于SizeOfRawData
字段,则该部分的一部分没有物理存在,并且只存在于内存中(一旦文件映射到进程地址空间)。
在大多数情况下,在程序入口点,你可以假设这个内存被填充0(但是内存的某些部分可能被windows加载器写入)。
要获取正在写入数据的位置,读取或加载可以使用交叉引用(xref)。 这是一个例子:
点击您想要外部参考的数据的名称:
然后按'x',你会被显示所有已知(到ida)数据的使用位置:
第二列表示数据的使用方式: