如何解析与 IDA 中的寄存器相关的地址?

逆向工程 艾达 馅饼
2021-07-04 05:56:38

我正在反转 x86 ELF 共享对象库。也许是因为位置无关性,所有函数都从将常量偏移量加载到寄存器中开始:

[... function prologue ...]
call    $+5
pop     eax             ; eax = eip = 0x4E2B
add     eax, 1009Dh     ; eax = 0x14EC8 = start of .got.plt section
mov     byte ptr [eax+194h], 0ACh
mov     dword ptr [eax+190h], 968CC5DEh
[...]

前两条指令设置eax为当前指令的地址。然后添加一个常量偏移量,这个偏移量可能是在链接过程中计算出来的。从那时起,所有地址都是相对引用的eax(在这种情况下,它们指向.bss段)。

因为 的值eax是固定的,所以我可以手动计算所有地址是否有一种自动化的方法来解决 IDA 中的这些固定寄存器偏移量,以便 IDA 可以正确地解决 X-refs 等问题?

0个回答
没有发现任何回复~