我需要为一个类做一个远程缓冲区溢出漏洞利用。我了解其中的大部分。它涉及覆盖 main 的返回地址,以便我可以执行自己的代码。但是我们从来没有讨论过如何在内存中找到返回地址的位置......我一直弄错了,漏洞利用不起作用:(
我坐在 gdb 中,我有缓冲区的地址 (0xbffff3dc)
现在,我需要找出返回地址在堆栈中的哪个位置(这样我就可以找出它和我的缓冲区之间的偏移量)。
然后我会知道我必须添加多少空间:
- 一个 NOP (0x90) “雪橇”
- 我的shellcode
- 更多 NOP ???
- 我的缓冲区的地址(覆盖返回地址)
- “\r\n” ???
^ 我不确定标有“???”的东西是否 是完全必要的。