我不确定我是否在针对此特定任务的正确位置发帖。但我希望有人能帮助我。
这是关于缓冲区溢出
http://nsfsecurity.pr.erau.edu/bom/Smasher.html
和:
http://nsfsecurity.pr.erau.edu/bom/StackGuard.html
你们会不会碰巧知道我怎样才能让它显示“哦,麻烦”。这是关于 Stack Guard 和 Smasher 的。
我尝试输入“D”,因为它确实提示了 ACSII 0x44,但我迷失了方向。
我不确定我是否在针对此特定任务的正确位置发帖。但我希望有人能帮助我。
这是关于缓冲区溢出
http://nsfsecurity.pr.erau.edu/bom/Smasher.html
和:
http://nsfsecurity.pr.erau.edu/bom/StackGuard.html
你们会不会碰巧知道我怎样才能让它显示“哦,麻烦”。这是关于 Stack Guard 和 Smasher 的。
我尝试输入“D”,因为它确实提示了 ACSII 0x44,但我迷失了方向。
制作教程太长了。正如Computer Systems: A Programmer's Perspective中所述,基本上您需要覆盖返回地址,以便当函数返回时(在汇编语言中ret
),%pc
计数器设置为某个地址(通常在堆栈上)。然后程序继续在错误的地址上执行,以便您执行其他操作。
您需要反汇编二进制文件并检查程序集。单步执行gdb
orntsd
可能会有所帮助。
我知道这已经很晚了,但我刚刚发现了这个。D 必须进入缓冲区溢出。例如,HELLOHOWARD 有 D 在缓冲区溢出。