砸堆栈:溢出
Smashing the stack: overflow
我刚刚读了Smashing the Stack for Fun and Profit(http://insecure.org/stf/smashstack.html),想探索更多。然后我在这里找到了这段代码:https://github.com/yangsu/Stack-Smashing
我非常清楚地理解这里所说的原则,我严格遵循了这些步骤,但遇到了一些错误。我打开了 2 个终端。
在第一个终端中:(在另一个终端中键入"cat"行后出现"分段故障"行)
$ 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 秒后重新启动。但在我在这里的处决中,它没有。这是为什么呢?
谢谢!
学会粉碎堆栈始于关注最小的细节。
成功的漏洞利用和简单的进程崩溃几乎完全相同。您必须找到细微的差异并更改漏洞。
首先调试崩溃的程序。
它到底为什么会崩溃?堆栈上写了什么?
它崩溃是因为退货地址被修改了(在这种情况下,你已经完成了一半),还是出于其他原因?
如果你不能回答这些问题,那么即使你把事情搞定了,你也不会学到任何东西。
相关文章:
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- C++ 对象数组堆栈溢出
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- 对象接收堆栈溢出异常 c++ 的排序向量
- 将公共递归转换为尾递归,因为大型输入的堆栈溢出
- C++ 中递归期间的堆栈溢出
- 启动 dll 时 C# 环境堆栈溢出
- 在C++中使用数组时如何防止堆栈溢出?
- 如何修复递归函数导致的堆栈溢出错误?C++
- 当我尝试为结构分配新指针时出现堆栈溢出错误
- 为什么析构函数无休止地调用自己(导致堆栈溢出)?
- 为什么堆栈溢出?如有建议,不胜感激
- 主函数执行时C++堆栈溢出异常
- 如何在不导致堆栈溢出的情况下计算非常大的数字和很小的 HCF.我正在使用欧几里得算法
- 递归克隆图时的堆栈溢出
- 防止 CRTP 特征码在"pure virtual"调用中堆栈溢出
- 分配大型静态 std::unordered_map 会导致堆栈溢出
- 静态数组溢出堆栈(seg 错误 11)仅在类定义内部时,否则不会..?
- 使用递归的溢出堆栈