如何使用 gdb 在寄存器偏移量处读取内存

How do I read the memory at a register offset using gdb

我正在尝试使用 GDB 读取特定地址的内存,但我找不到执行此操作的命令。

我需要读取 0x4(%ebp) 和 0x8(%ebp) 的内存。我相信这是可能的,而且应该相当容易,但是到目前为止我看过的所有作弊 sheet 都没有答案。

可以使用 $reg 语法访问寄存器值。然后可以用 x.

检查寄存器中地址的内容和任何偏移量

示例:

(gdb) p $rbp
 = (void *) 0x7fffffffe0b0
(gdb) p $rbp+4
 = (void *) 0x7fffffffe0b4
(gdb) x $rbp+4
0x7fffffffe0b4: 0x00005555
(gdb) x $rbp+8
0x7fffffffe0b8: 0xf7a03bf7