在执行二进制文件的反汇编时,我注意到许多子例程的地址偏移量是错误的。看来2字节地址前面的字节是错误的。例如,在下面的屏幕截图中,反汇编表明函数应该在 0xA5C1E 和 0xA5BCA。我已经仔细检查了原始十六进制转储并确认在 2 字节地址之前有一个“A”字节。值得注意的是,以“A”开头的地址在这个二进制文件中是不可能的,因为它的长度只有 0x7FFFF。根据其他二进制文件的经验,我知道这些函数的真实地址应该分别是 0x25C1E 和 0x25BCA。我还可以确认我有从这些位置开始的子程序。

我已经反汇编了其他二进制文件(不同的应用程序,相同的处理器)并且没有出现这个问题。但是,我从这个应用程序中反汇编的每个二进制文件都显示了这个问题。
有没有办法在 IDA Pro 中纠正这个问题?它与我的 DPP 寄存器值有什么关系吗?