我刚刚阅读了 Smashing the Stack for Fun and Profit ( http://insecure.org/stf/smashstack.html ) 并想探索更多。然后我在这里找到了这段代码:https ://github.com/yangsu/Stack-Smashing
我很清楚这里所说的原则,我严格按照步骤操作,但出现了一些错误。我开了2个终端。
在第一个终端中:(在另一个终端中键入“cat”行后出现“Segmentation fault”行)
$ sudo sysctl -w kernel.randomize_va_space=0
$ gcc -z execstack -fno-stack-protector webserver.c -o server
$ ./server 5000
Segmentation fault. Shutting down peacefully, then rebooting.
$
在第二个航站楼,
$ g++ generate.cpp -o generate
$ ./generate
$ cat data.dat | nc 127.0.0.1 5000
$
错误是由“cat”行的错误格式或参数引起的吗?还是有其他原因?
此外,正如函数sigsegv中所写,服务器应在 2 秒后重新启动。但在我在这里的执行中它没有。为什么是这样?
非常感谢你!