我想利用基于堆栈的缓冲区溢出来进行教育。
有一个使用来自 main 的参数调用的典型函数,该函数作为程序的输入提供给保存参数的本地缓冲区。给定这样的输入nops+shellcode+address_shellcode
,我将利用它。
在使用 gdb 调试后,我找到了 shell 代码的地址,因为它将作为参数传递,并且在strcpy
我检查堆栈之后$ebp+8
,返回地址已成功地被 shell 代码的地址覆盖。所以我有我想要的。但是当我向前执行时,我得到了:
->shellcode_address in ?? ()
接着
Cannot find bound of current function
返回地址具有我想要的值。任何想法发生了什么?
此外,当我执行它时,我遇到了分段错误,我已经用-g -fno-stack-protector
. 为什么?