在分析Ghidra中的程序集清单时,我不清楚以下说明:
MOV ECX,dword ptr [R13 + 8192]
LEA RDX,[R13 + RSI*0x1 + 8196]在MOV中,我假设寄存器ECX将得到指向寄存器R13 + 8129个位置(或2048字节)的值。这个假设流行吗?
在该算法中,将RSI + 8196位置(2049字节)的R13 +值的指针分配给RDX。这是正确的吗?
否则,我该如何解释这些指令?
发布于 2022-02-10 13:10:00
这些数字被称为“位移”,它们被添加到剩余的值中。
mov ecx, dword ptr [r13 + 8192]将r13和8192的值相加,并将结果地址处的32位值复制到ecx中。
lea rdx, [r13 + rsi*0x1 + 8196]将r13的值加上rsi值乘以1(给出rsi的值)和8196的乘积结果,并将和加载到rdx中。
这些位移是可寻址内存单元的偏移量,这里是字节。8192的位移是指远离基址的字节地址8192字节。
https://stackoverflow.com/questions/71061265
复制相似问题