堆栈缓冲区溢出(Windows,C++):如何检测罪魁祸首?

Posted

技术标签:

【中文标题】堆栈缓冲区溢出(Windows,C++):如何检测罪魁祸首?【英文标题】:Stack buffer overrun (Windows, C++) : how can I detect the culprit? 【发布时间】:2011-01-29 05:27:09 【问题描述】:

Windows 上是否有任何工具/库可以帮助我找出罪魁祸首?这是一个相当大的代码库,有多个线程。

我主要为 Linux 编写代码; Windows 是一个陌生的领域。感谢您的意见。

【问题讨论】:

【参考方案1】:

对于堆栈缓冲区,使用 /GS 编译,请参阅 Compiler Security Checks In Depth 对于堆缓冲区,您可以尝试堆 gflag,请参阅GFlags and PageHeap,但需要小心,因为所有分配,无论大小,都会获得自己的页面。

【讨论】:

以上是关于堆栈缓冲区溢出(Windows,C++):如何检测罪魁祸首?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c / c++ 程序中检测可能/潜在的堆栈溢出问题?

基于堆栈的缓冲区溢出

堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出

面向开发的内存调试神器,如何使用ASAN检测内存泄漏堆栈溢出等问题

是否有任何工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]

有没有办法在运行时检测堆栈溢出? (c++)