这可能听起来很初学,但我真的想了解代码的内部运作方式,而不仅仅停留在更高层次的概念上。
所以我的问题是这样的。我正在阅读《黑客与渗透艺术》,作者正在解释GDB命令,并解释如何检查某个内存地址。
我的问题在于该命令的输出。
如果我运行
关于相关主题,类似以下内容有什么用途?
他说这是为了检查同一地址上的多个单元,但一个地址里怎么可能有多个单元呢?也许我对内存地址背后的概念有所误解。我认为一个内存位置只能容纳一个东西。
如果这似乎是个愚蠢的问题,我再次道歉。我会非常感激帮助和进一步学习的链接。我真的想理解这个。
所以我的问题是这样的。我正在阅读《黑客与渗透艺术》,作者正在解释GDB命令,并解释如何检查某个内存地址。
我的问题在于该命令的输出。
(gdb) x/x $eip
我知道x代表十六进制,但我不明白它为什么会显示出这个:
0x8048384 <main+16>: 0x00fc45c7
如果我运行
run i r eip
,输出应该是0x8048384,那么x/x $eip
的两个输出都应该是0x8048384吗?关于相关主题,类似以下内容有什么用途?
(gbd) x/2x $eip
他说这是为了检查同一地址上的多个单元,但一个地址里怎么可能有多个单元呢?也许我对内存地址背后的概念有所误解。我认为一个内存位置只能容纳一个东西。
如果这似乎是个愚蠢的问题,我再次道歉。我会非常感激帮助和进一步学习的链接。我真的想理解这个。