我刚阅读了 Smashing the Stack for Fun and Profit (http://insecure.org/stf/smashstack.html) 并想进一步探索。然后我在这里找到了这段代码: https://github.com/yangsu/Stack-Smashing
我清楚地理解了这里所述的原则,并且我密切地遵循了这些步骤,但是出现了一些错误。我打开了两个终端。
在第一个终端中:(在另一个终端中输入“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秒后重新启动。但在我的执行中它没有重新启动。为什么会这样?
非常感谢!
sudo sysctl -w kernel.randomize_va_space=0
,算了。 - smocking