生成堆栈溢出

0 c linux stack-overflow

如何在GNU/linux中创建堆栈溢出的条件?

Jas*_*son 12

一个没有出路的递归函数应该做的伎俩

伪代码,我的c有点生疏

void stack_overflow()
{
   stack_overflow();
}
Run Code Online (Sandbox Code Playgroud)

  • 编写代码并声明它是伪代码,只是为了让你不必测试它,很好.:) (3认同)

ede*_*def 9

我建议你阅读一下phrack杂志上的文章"粉碎堆栈以获得乐趣和利润".它还包含示例代码.


cle*_*tus 5

你只需要考虑一下C中什么使用了栈。

  • 动态内存分配(使用malloc())使用堆;
  • 局部变量和函数调用堆栈使用堆栈。

因此,您所要做的就是耗尽堆栈。函数上的无限递归或大型局部变量创建(不要让它们因超出范围而被清理)都应该做到这一点。