0

在分析 Ghidra 中的装配清单时,我不清楚以下说明:

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

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

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

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

4

1 回答 1

-1

这些数字称为“位移​​”,它们被添加到它们左边的值上。

mov ecx, dword ptr [r13 + 8192]r13和 8192 的值相加,并将结果地址处的 32 位值复制到ecx.

lea rdx, [r13 + rsi*0x1 + 8196]将 的值r13、 的值乘以rsi1(给出 的值rsi)和 8196 的结果相加,并将总和加载到rdx.

这些位移是可寻址内存单元的偏移量,这里是字节。位移 8192 表示字节地址距基地址 8192 字节。

于 2022-02-10T13:10:00.723 回答