【发布时间】:2013-11-03 02:24:10
【问题描述】:
我有这个功能:
char code[] = "\xeb\x19\x31\xc0\x31\xdb\x31\xd2\x31\xc9\xb0\x04\xb3\x01\x59\xb2\x05\xcd\x80\x31\xc0\xb0\x01\x31\xdb\xcd\x80\xe8\xe2\xff\xff\xff\x68\x65\x6c\x6c\x6f";
int main(int argc, char **argv)
{
int (*func)();
func = (int (*)()) code;
(int)(*func)();
}
(此代码来自:shellcode tutorial)
所以我编译并执行了它,但我只得到这个消息:Speicherzugriffsfehler (Speicherabzug geschrieben)。
为什么我没有得到任何东西,只有这个错误信息?
ps:我的系统是 ubuntu x86 电脑。 shellcode 应该可以使用它。我用 gcc 和 gcc-4.5 编译它,都是同样的错误...
【问题讨论】:
-
根据谷歌翻译,该消息表明核心已转储。如果你能找到它,你可以使用 GDB 看看出了什么问题。 (
gdb yourprogram some.core) -
您运行的是德语系统吗?否则会出现德语错误是出乎意料的,但大概你应该已经理解了……无论如何,这似乎不是一个真正的问题。
-
您是否阅读了教程主页上的常见问题解答 #7 和 #10,并确保它们不会导致您的问题。