0

我正在学习如何使用 Ghidra Tool,但我有一个如何解释一个功能的问题。这是简化版:

以这种情况为例:[RBP – 0x40]堆栈的 location 具有以下值:(0xFFFF7710实际上,该值是堆栈中另一个元素的地址……但是对于问题,这无关紧要)。

现在我们将该值的地址存储在寄存器中:

LEA RAX, [RBP – 0x40]

最后,我们执行这两条指令:

MOV EDX, 0xFFFF5520
MOV [RAX], DL

堆栈中的最终内容[RBP – 0x40]0xFFFF7720,0x00000020还是0xFFFFFF20?

[RBP – 0x40]是通过最后一个操作覆盖堆栈的所有内容MOV还是仅覆盖最后一个字节?

谢谢。

4

1 回答 1

1

结果是0xFFFF7720。将一个字节存储到内存中不会影响该字的其他字节。(你可以测试一下...)

于 2021-01-02T17:03:13.607 回答