请问:shellcode运行出错,如何更改?

leetow2003 2012-04-15 10:29:11
我这个程序调试了很久,还是出现错误。
请看:
/*这里的shellcode就是
push %ebp
mov %esp,%ebp
pop %ebp
ret
*/
unsigned char shellcode[]=
"\x55\x89\xe5\x5d\xc3";

typedef void (*PF)();

int main(void)
{
PF pf=(PF)&shellcode;
(*pf)();
return 0;
}
这个程序在XP的VC6中可以运行通过,可是在我的虚拟机
上(OS是CentOS 5.3)上编译能过,但运行时出错。
我是用gcc编译的,可是执行时就是出现
Segmentation fault,我用gdb调试,说是
(*pf)()错误,可是我看反汇编时,它调用的地址里有以上的
汇编程序,请问这错在哪了?
...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
leetow2003 2012-04-15
  • 打赏
  • 举报
回复
自己顶

23,120

社区成员

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

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