为什么我在GDB中收到消息“单步执行直到退出没有行号信息的函数shellcode”?

时间:2017-02-03 11:42:12

标签: c gdb buffer buffer-overflow

我尝试使用缓冲区溢出来重写我的函数的返回地址,并且它有效。但是当我尝试单步执行该函数(存储在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,这是关注吗? 这是调试会话:

这个问题让我非常不安,如果有人可以提供帮助,那就太棒了!

0 个答案:

没有答案