我的问题与this非常相似但不一样。
我在书中运行了相同的exploit_notesearch.c 示例:Hacking, the Art of Exploitation on my 64-bit OS, Archlinux,但它不起作用。
从上面的链接我了解到它不能在大多数 64 位系统上工作。但我仍然不明白为什么程序必须这样做:ret = (unsigned int)&i - offset
. 为什么我不能这样做:ret = (unsigned)shellcode
以便我可以将易受攻击的程序的返回地址替换为 shellcode 的起始地址?