作者imprazaguy (Wayne)
看板LinuxDev
標題Re: [問題] shellcode會core dump
時間Thu Dec 30 17:05:10 2010
看原PO的想法是想要改 stack 裡的 return address
自己改寫成以下的程式執行無誤(我是64bit,所以用long)
------
#include <stdio.h>
#include <stdlib.h>
void foo2()
{
puts("foo2");
exit(1);
}
void foo1()
{
long *ret;
ret = ((long *)&ret) + 2;
*ret = (long)foo2;
puts("foo1");
}
int main()
{
foo1();
return 0;
}
------
不過將 foo2 改成你的 shellcode 結果就 code dump 了
如果你的shellcode沒錯的話,我猜測的原因是:
http://en.wikipedia.org/wiki/Executable_space_protection
原PO你覺得呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.141
→ cobrasgo:我剛剛也查到了,用readelf可以看到STACK的flag是RW 12/30 17:49
→ cobrasgo:感謝回應 12/30 17:51