我偶然发现了一个简单的缓冲区溢出(嘿,你知道什么?)教程并认为我可能会尝试一下。视频大约20分钟,但它真的很有趣,如果你不熟悉的话,我建议观看。这是URL:
http://www.securitytube.net/video/1752
我的问题在14:17附近出现,此时他输入了一个查找堆栈指针的命令,但我输入了相同的命令,几乎相同的代码(不同的内存位置)并得到这个:
(gdb) i r esp
Invalid register `esp'
我真的不知道为什么会这样,我不知道它是如何运作的。我是否覆盖了堆栈指针?我实际上是通过Windows 7上的Virtual Box运行Linux,最新版本是Backtrack linux。
答案 0 :(得分:1)
您需要在寄存器前加上“$”,i。即
i r $esp
当您使用64位gdb时,寄存器名称为$rsp
。