在分析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个字节。