2

我偶然发现了一个简单的缓冲区溢出(嘿,你知道什么?)教程,并认为我可以尝试一下。视频长约20分钟,但非常有趣,如果您不熟悉这些内容,我建议您观看。这是网址:

http://www.securitytube.net/video/1752

我的问题出现在 14:17 左右,此时他输入了一个命令来查找堆栈指针,但我输入了相同的命令,使用几乎相同的代码(不同的内存位置)并得到这个:

(gdb) i r esp
 Invalid register `esp'

我真的不知道为什么会这样,我还不知道它是如何工作的。我覆盖了堆栈指针还是什么?我实际上是通过 Windows 7 上的 Virtual Box 运行 linux,最新版本的 Backtrack linux。

4

1 回答 1

1

您需要在寄存器前加上“$”,即

i r $esp

由于您使用的是 64 位 gdb,因此寄存器名称为$rsp.

于 2012-06-19T06:30:02.510 回答