我按照教授的指示运行 FedoraCore6。我试图简单地运行由实验室说明提供的这个 shellcode,但我不断收到分段错误。我们被告知我们可以使用命令 gcc-fno-stack-protector call_shellcode 在关闭堆栈保护的情况下进行编译.c 无论我只是使用 gcc -o shell call_callshellcode.c 编译代码还是使用 -fno-stack-protector 命令我在启动代码时遇到分段错误而不是调用 shell ..有什么帮助吗?所以我得到了这个实验室的代码,如下所示:
#include <stdlib.h>
#include <stdio.h>
const char code[] =
"\x31\xc0"
"\x50"
"\x68""//sh"
"\x68""\bin"
"\x89\xe3"
"\x50"
"\x53"
"\x89\xe1"
"\x99"
"\xb0\x0b"
"\xcd\x80"
;
int main(int argc, char **argv)
{
char buf[sizeof(code)];
strcpy(buf, code);
((void(*) ( ))buf)();
}