我注意到,如果我在 IDA 中找到一条指令,其左侧显示的地址将与实际文件中出现的地址大不相同。我想知道为什么会这样,以及如何在每个指令对应的文件中找到偏移量。谢谢!
在IDA中,为什么指令地址与原文件中对应的位置不同?如何找到文件位置?
逆向工程
艾达
聚乙烯
地址
2021-06-12 11:13:36
3个回答
当前位置的文件偏移量与地址一起显示在反汇编(IDA View)状态栏中。
IDA 正在根据二进制文件的基地址(或您在加载二进制文件之前提供的基地址)显示相对虚拟地址。这与实际地址不同的原因是因为它被映射到内存中。相对虚拟地址 (RVA) 是 BaseAddress + Offset,如果您找到偏移地址并将其添加到您的静态二进制基地址,您将在二进制中找到相同的点。
伊戈尔为艾达给出了答案。一种更普遍的可能性,非常简单且适用于任何地方,只是从反汇编程序中写下一系列不可变字节(即避免更改地址),然后将文件加载到十六进制编辑器并让它搜索该序列。如果它足够长,则文件中通常只有一个命中。
其它你可能感兴趣的问题