如何使用 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
我正在尝试使用 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