我尝试使用缓冲区溢出来重写我的函数的返回地址,并且它有效。但是当我尝试单步执行该函数(存储在char数组中)时,我得到了消息:
"Single stepping until exit from function shellcode,
which has no line number information."
我使用gcc使用标志-g编译了我的C程序,我只有一个文件。 所以这是我的差异:我想执行的函数不是"真正的代码"。它存储在char数组中,如下所示:
char shellcode[]="\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0"
"\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d"
"\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73"
"\x68";
我的系统是Kali linux,这是关注吗? 这是调试会话:
这个问题让我非常不安,如果有人可以提供帮助,那就太棒了!