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