c-如何使用ghidra理解汇编中的内存引用



在分析Ghidra中的程序集列表时,我不清楚以下说明:

MOV    ECX,dword ptr [R13 + 8192]
LEA    RDX,[R13 + RSI*0x1 + 8196]

在MOV中,我假设寄存器ECX将获得指向寄存器R13+8129位置(或2048字节(的值。这个假设是最新的吗?

在LEA中,RSI+8196位置(2049字节(的R13+值的指针被分配给RDX。这是正确的吗?

否则,我应该如何解释这些说明?

数字被称为"位移";,它们被添加到它们剩下的值中。

mov ecx, dword ptr [r13 + 8192]r13和8192的值相加,并将所得地址处的32位值复制到ecx中。

lea rdx, [r13 + rsi*0x1 + 8196]r13的值(rsi的值乘以1(给出rsi的值(的结果(与8196相加,并将和加载到rdx中。

这些位移是可寻址存储器单元的偏移,这里是字节。8192的位移意味着字节地址距离基地址8192个字节。

最新更新