在IDA中,为什么指令地址与原文件中对应的位置不同?如何找到文件位置?

逆向工程 艾达 聚乙烯 地址
2021-06-12 11:13:36

我注意到,如果我在 IDA 中找到一条指令,其左侧显示的地址将与实际文件中出现的地址大不相同。我想知道为什么会这样,以及如何在每个指令对应的文件中找到偏移量。谢谢!

3个回答

当前位置的文件偏移量与地址一起显示在反汇编(IDA View)状态栏中。

IDA 正在根据二进制文件的基地址(或您在加载二进制文件之前提供的基地址)显示相对虚拟地址。这与实际地址不同的原因是因为它被映射到内存中。相对虚拟地址 (RVA) 是 BaseAddress + Offset,如果您找到偏移地址并将其添加到您的静态二进制基地址,您将在二进制中找到相同的点。

伊戈尔为艾达给出了答案。一种更普遍的可能性,非常简单且适用于任何地方,只是从反汇编程序中写下一系列不可变字节(即避免更改地址),然后将文件加载到十六进制编辑器并让它搜索该序列。如果它足够长,则文件中通常只有一个命中。