[当我学习pwn时,使用gdb调试,但是程序集返回失败

问题描述 投票:0回答:1

我正在学习有关堆栈溢出的pwn。我使用gdb调试linux elf文件。

Elf binary仅打开NX。

enter image description here

我成功执行了堆栈溢出。

但是执行时

leave  
ret

我遇到错误。

先到达leave

enter image description here

您可以看到

enter image description here

步骤

enter image description here

错误显示

Cannot access memory at address 0x8

我不访问0x8处的内存。现在$ rbp是0x0,当$rbp+0x8执行时,ubuntu检查ret吗?为什么会这样?

我的环境

uname -a
Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
linux ubuntu assembly gdb stack-overflow
1个回答
0
投票

这可能是因为当缓冲区溢出时,指令指针指向0x8。因此,程序尝试到达该位置,但是分配给二进制文件的内存中没有该位置。如果您告诉缓冲区大小是多少以及您给的垃圾量是多少,那就更好了。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.