我正在研究自己的"黑客剥削艺术第二版"这本书,并且已经达到了第一套障碍.
在GDB中,我可以理解这段代码:
x/x $rip
Run Code Online (Sandbox Code Playgroud)
将以十六进制检查寄存器$ rip和输出.
但是这段代码做了什么:
x/2x $rip
Run Code Online (Sandbox Code Playgroud)
该书说,它正在检查目标地址的多个单位.但这是否意味着它会在接下来的2次变化中显示$ rip的值.或者它意味着什么呢?
Columbo会说的另一个问题.在我调用检查命令后,我得到:
0x100000f00 <main+8> 0x00fc45c7
Run Code Online (Sandbox Code Playgroud)
main + 8是什么意思?
x/x $rip将以十六进制检查寄存器$ rip和输出.
这是不正确的:它将检查指向的内存$rip.如果你想检查$rip自己,你会使用print/x $rip.
但是这段代码做了什么:
x/2x $rip
它检查了两个记忆词,指向$rip.
什么
main+8意思
这意味着你正在查看包含指令的内存,偏离8开头main()