堆栈缓冲区溢出会导致堆损坏吗?

Posted

技术标签:

【中文标题】堆栈缓冲区溢出会导致堆损坏吗?【英文标题】:Can stack buffer overflows cause heap corruption? 【发布时间】:2014-03-29 18:48:00 【问题描述】:

堆栈缓冲区溢出是否可能导致堆损坏问题而不会溢出返回地址?如果有,你能举个例子吗?

【问题讨论】:

哪种语言?哪个平台? 【参考方案1】:

是否会导致堆损坏很大程度上取决于平台。

但是,例如,缓冲区溢出会覆盖指针变量,以便它获得一个恰好是不同但有效指针的新值。如果代码然后继续释放所述指针(不知道它现在是别的东西),那么引用该指针的代码可能会崩溃或行为异常,因为内存已被过早释放并可能重新分配用于不同的目的。

【讨论】:

很好的答案!谢谢! 我见过这样的情况,当this指针从保留调用的寄存器溢出到堆栈,然后堆栈被覆盖。

以上是关于堆栈缓冲区溢出会导致堆损坏吗?的主要内容,如果未能解决你的问题,请参考以下文章

进程内存和内存损坏

缓冲区溢出是与程序堆栈相关的唯一可能的错误吗?

栈溢出原理

系统在此应用程序中检测到基于堆栈的缓冲区溢出。溢出...

堆栈溢出一般是由啥原因导致的?

NSData 转换上的堆缓冲区溢出