我试图编译这个使用ubuntu上12终端:
#include <stdio.h>
#include <stdlib.h>
main()
{
/*declare argument array*/
char *args[2];
args[0] = “/bin/bash”;
args[1] = NULL;
execve(args[0], args, NULL);
exit(0);
}
我发现这个例子http://www.securitytube.net/video/235这也正好是一个阿列夫一个在“砸堆栈的乐趣和利润”使用。 我知道,因为那么多的改变。 更简单的例子,我用:
GCC -ggdb -mpreferred堆叠边界= 2 -fno堆叠保护器的文件名FILENAME.C
其他时候,我可能包括静态工具。 它的工作,直到我试图编译上面的C代码。 我从终端接收的消息是:
ss@ss-laptop:~$ gcc -static -mpreferred-stack-boundary=2 -fno-stack-protector -o shell shell.c
shell.c: In function ‘main’:
shell.c:9:2: error: stray ‘\342’ in program
shell.c:9:2: error: stray ‘\200’ in program
shell.c:9:2: error: stray ‘\234’ in program
shell.c:9:15: error: expected expression before ‘/’ token
shell.c:9:15: error: stray ‘\342’ in program
shell.c:9:15: error: stray ‘\200’ in program
shell.c:9:15: error: stray ‘\235’ in program
ss@ss-laptop:~$
我明白,这是一个很简单的例子,这个错误可能是由当前的Linux标准的安全措施引起的,但我想,让他们围绕这个例子,在未来更多练习。 如果有人可以帮助,这将是“德艺双馨”。
干杯