我正在使用IDA Pro来反汇编Windows DLL文件。有一点我有一行代码说
mov esi, dword_xxxxxxxx
我需要知道dword是什么,但是双击它会把我带到.data页面和,所有内容都在问题标记中。
如何获得应该存在的纯文本?
最佳答案
如果您在IDA中看到问号,则意味着文件上此位置(磁盘驱动器上)没有物理数据。
PE文件中的节具有物理大小(由节标题的SizeOfRawData字段确定)。 Windows的加载程序将其物理大小(在磁盘上)与节的大小不同(该大小由节头的VirtualSize字段指定)。
因此,如果VirtualSize
字段大于SizeOfRawData
字段,则该部分的一部分没有物理存在,并且仅存在于内存中(一旦文件被映射到进程地址空间)。
在大多数情况下,可以在程序入口处假定此内存填充为0(但是Windows加载程序可能会写入内存的某些部分)。
要获取写入,读取或加载数据的位置,可以使用交叉引用(xref)。这是一个例子:
单击想要外部参照的数据的名称:
然后按“x”,将向您显示使用数据的所有已知(到ida)位置:
第二列指示如何使用数据:
关于windows - IDA Pro拆解显示?而不是.data中的十六进制或纯ascii?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38093168/