AppVerifier原理
AppVerifier的原理是hook分配和释放资源的API,在程序调用这些API时记录信息,在程序退出时报告出未释放的资源。
堆破坏程序
所谓堆破坏,就是访问了不该访问的内存。下面是用VS2015社区版,写的一个C++的Win32堆破坏程序例子:
char *p = new char[5];
p[0] = 1;// ok
p[10] = 10;//heap error, buffer overflow
将程序生成Release,Win32程序(heaperr.exe)。
调试环境配置
- 下载AppVerifier,从这里,安装
用AppVerifier调试heaperr.exe
(1) 打开AppVerifier,选择File-> Add Application添加应用程序
(2) 选择Basic最基本的验证,Save
(3) 运行
heaperr.exe(4) 从AppVerifier的菜单View选择Logs,选择
- (5) 查看Log中的error
本文介绍了AppVerifier的原理及如何使用它来检测程序中的堆破坏问题。通过一个C++ Win32堆破坏程序的例子,详细说明了如何配置调试环境,并使用AppVerifier找出程序中的错误。
1万+

被折叠的 条评论
为什么被折叠?



