关于shellcode的调用,产生段错误,书上的正常运行,我的就不行啊

tomsx 2005-12-08 12:45:16
char shellcode[]="\x31.......\x80";
int main()
{
asm("call shellcode");
}
为什么运行后显示段错误??是收到了sigsegv信号,看了一下是非法内存访问了,但书上一切正常,在我的机器上就不行?请问为什么?
是不是因为shellcode[]所在的区没有执行属性??把它放到MAIN里面也不行??
系统:fc2 kernel 2.6.5
注:shellcode[]就是一个调用/bin/sh的程序
...全文
224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hasia 2006-04-11
  • 打赏
  • 举报
回复
FC2可能默认开启了ExecShield,有很多不可执行和随机化的特性,阻止缓冲区溢出

可以看看这个
http://www.vshj.com/Article/2006/200602/Article_51193.htm
tomsx 2005-12-16
  • 打赏
  • 举报
回复
没有人能回答吗?
x86 2005-12-08
  • 打赏
  • 举报
回复
不知道你的具体代码。也许你的kernel已经修复了你说的问题。你可以在一个老的kernel上试一下。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧