指针反汇编

逆向工程 拆卸 x86 顶石
2021-07-11 06:37:48

我正在使用 Capstone 引擎开发 ELF 反汇编程序。我已经实现了一个线性扫描算法作为最基本的版本。

我的目标是现在实现递归遍历。

考虑一些反汇编(它做什么并不重要):

0x4005b6:   xor ebx, ebx         
0x4005b8:   nop dword ptr [rax + rax]         
0x4005c0:   mov rdx, r13         
0x4005c3:   mov rsi, r14         
0x4005c6:   mov edi, r15d         
0x4005c9:   call    qword ptr [r12 + rbx*8]         
0x4005cd:   add rbx, 1         
0x4005d1:   cmp rbx, rbp         

使用递归遍历,我认为不可能反汇编下面地址处的内容(或任何以指针为目标的分支指令)是否正确?

0x4005c9:   call    qword ptr [r12 + rbx*8]         

ps 如果它有任何意义,则 r12 的值计算为

0x40058b:   lea r12, qword ptr [rip + 0x20087e]

rip 和 r12 寄存器在被剪断的代码所属的更广泛的反汇编中没有被引用。

谢谢

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