1

我正在自学《Hacking The Art of Exploitation 2nd Edition》一书,并且已经达到了第一组障碍。

在 GDB 中,我可以理解这段代码:

x/x $rip

将检查寄存器 $rip 并以十六进制输出。

但是这段代码做了什么:

x/2x $rip

这本书说它正在检查目标地址的多个单元。但这是否意味着它在接下来的 2 次更改时显示 $rip 的值。还是有别的意思?

正如哥伦布所说,还有一个问题。调用检查命令后,我得到:

0x100000f00 <main+8> 0x00fc45c7

main+8 是什么意思?

4

1 回答 1

5

x/x $rip将检查寄存器 $rip 并以十六进制输出。

这是不正确的:它将检查.指向的内存$rip。如果你想检查$rip自己,你会使用print/x $rip.

但是这段代码做了什么:x/2x $rip

它检查由 指向的两个记忆词$rip

是什么main+8意思

这意味着您正在查看包含指令的内存,位于8从开始的偏移量main()

于 2013-01-07T05:09:07.247 回答