是否有任何工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]
Posted
技术标签:
【中文标题】是否有任何工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]【英文标题】:Are there any tools to detect buffer overflow on Visual C++ 6.0? [closed] 【发布时间】:2009-04-23 20:03:19 【问题描述】:由于堆问题,我一直遇到崩溃问题,所以我猜某处发生了缓冲区溢出。如何检测?
【问题讨论】:
“堆问题”远非“buffer oberflow”的同义词 它们当然不是同义词,但堆问题可能是缓冲区溢出的症状。 【参考方案1】:我使用Compuware BoundsChecker 作为VC6 中的错误检测工具。它可以拾取缓冲区溢出。
你也可以试试PageHeap,一个windows的工具。
【讨论】:
我在尝试使用 PageHeap 时遇到了一些问题,这个问题定义了它们:***.com/questions/781821/… 你能提供更多关于如何使用它的信息吗?【参考方案2】:我为此使用Rational Purify。
【讨论】:
【参考方案3】:可以使用VC调试堆:http://msdn.microsoft.com/en-us/library/974tc9t1.aspx
在 VC6 中也支持 crtdbg.h 中的大部分内容(如果不是全部的话)。
【讨论】:
【参考方案4】:在某些地方简单地插入 _heapchk() Windows API 函数并寻找错误(在我的例子中是对数组的索引 -1 的访问)时,我得到了很好的结果。
【讨论】:
以上是关于是否有任何工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
有啥理由不使用 Visual Studio 6 for C++? [关闭]