gpt4 book ai didi

linux - 我怎样才能找到 main() 的返回地址在堆栈中的位置?

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:10 25 4
gpt4 key购买 nike

我需要对一个类进行远程缓冲区溢出攻击。我了解其中的大部分内容。它涉及覆盖 main 的返回地址,以便我可以执行自己的代码。但是我们从来没有讨论过如何在内存中找到返回地址的位置......我一直弄错了,漏洞利用不起作用:(

我坐在 gdb 中,我有缓冲区的地址 (0xbffff3dc)

现在,我需要找出返回地址在堆栈中的位置(这样我就可以找出它和我的缓冲区之间的偏移量)。

然后我就会知道我必须添加多少空间:

  • NOP (0x90)“雪橇”
  • 我的shellcode
  • 更多 NOP ???
  • 我的缓冲区地址(覆盖返回地址)
  • "\r\n"???

^ 我不确定标有“???”的东西是完全必要的。

最佳答案

您可能会使用 objdump .

只需尝试objdump -d your-executable,它会给你汇编代码和地址

关于linux - 我怎样才能找到 main() 的返回地址在堆栈中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com