经典软件推荐:AppVerifier(应用程序验证器)

“Bug”中最头痛的是那么一类:野指针、无效句柄,访问冲突,跟Windows内核打交道比较多的那些,它们发现难,调试难,定位难。不过AppVerifier就是解决这些问题的工具,实际上,以微软为首的大的Windows软件开发商都在使用这个软件作辅助测试。我在这里推荐它的原因,除了它善于抓这些比较内核的、底层的Bug之外,是微软出品,可以免费使用和非常简单是另外几个因素。
AppVerifier的客观介绍
AppVerifier 可以免费下载,特别用于检测和帮助调试内存损坏、危险的安全漏洞以及受限的用户帐户特权问题。AppVerifier 有助于创建可靠且安全的应用程序,方法是监视应用程序与 Microsoft? Windows? 操作系统的交互,并配置应用程序使用的对象、注册表、文件系统和 Win32 API(包括堆、句柄和锁)。AppVerifier 还包括检查,以便预测应用程序在非管理员环境中的执行情况。
上面是微软MSDN中对它的介绍原文。MSDN在“C++安全性最佳做法”中推荐使用它来验证软件安全性。MSDN甚至还提倡在整个开发生命周期中使用这个软件:“在整个软件开发生命周期中使用时,AppVerifier可节约开发工作的成本,因为它能方便地在早期就识别出问题,而在早期修复错误是比较容易且成本较低的。”
AppVerifier能识别的问题
AppVerifier 有助于确定: (Copy于MSDN)
? 应用程序正确地使用 API 的时刻:
? 不安全的 TerminateThread API。
? 正确使用线程本地存储(Thread Local Storage,TLS)API。
? 正确使用虚拟空间操作(例如,VirtualAlloc 和 MapViewOfFile)。
? 应用程序是否使用结构化的异常处理隐藏访问冲突。
? 应用程序是否试图使用无效的句柄。
? 堆中是否有内存损坏或存在内存问题。
? 应用程序是否在资源不足的情况下用尽了内存。
? 是否正确使用了临界区。
? 运行在管理员环境中的应用程序在具有较低特权的环境中是否能良好运行。
? 当应用程序作为受限用户运行时是否会存在潜在的问题。
? 在线程的上下文中,是否在将来的函数调用中会存在未初始化的变量。
AppVerifier的使用
下面结合自己的应用介绍一下它的使用方法(非常简单)。
1。下载AppVerifier
在微软网站下载,并安装软件
http://www.microsoft.com/downloads/details.aspx?FamilyID=bd02c19c-1250-433c-8c1b-2619bd93b3a2&DisplayLang=en
2。运行AppVerifier
在AppVerifier中增加需要验证的应用程序,对于开发人员,直接选择工程中输出的Debug版的可执行文件,可以添加多个文件,也可以添加动态库DLL。
3。配置需要验证的项目
AppVerifier大致可以验证异常、句柄、堆栈、内存、未初始化参数等18个方面(3.3版)的隐患,选择需要进行测试的项目,并保存设置。
4。在IDE中调试程序
这些跟以前是一样的,只是在调试过程中AppVerifier会向你报告它检测到的问题,以异常的方式,或者输出信息到输出框中,一般的情况,程序停在发生问题的地方不远处。
5。取消验证
在AppVerifier中取消要验证的程序,否则,验证代码一直挂在程序中。

好了,先拿手上的软件试试法吧,以前没有任何错误,现在,多出来了不少的异常,赶紧看看。。。。
与它是同一个系列的另一个软件:Driver Verifier,专门来测试驱动的安全。
参考文献:
感兴趣的同事google一下“Application Verifier”,看看简介。
想学习的同事请阅读MSDN:
《在软件开发生命周期中使用应用程序验证器》
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/WDdnclinicscripting.mspx?mfr=true
《使用应用程序验证程序排除 Windows XP中的程序问题》
http://support.microsoft.com/default.aspx/kb/286568/zh-cn
《C++ 安全性最佳做法》
http://msdn2.microsoft.com/zh-cn/library/k3a3hzw7(VS.80).aspx
时间: 2024-10-16 20:03:08

经典软件推荐:AppVerifier(应用程序验证器)的相关文章

10款 Mac 经典原型设计开发软件推荐

在Mac上有大量强大的开发和设计工具,今天和大家推荐10款Mac上的经典原型设计开发工具,原型设计工具是开发者必备的一款工具,无论是网站开发还是移动APP开发,都需要在前期进行严格细致的原型设计,才能在后期开发中节省时间. 本文图片和内容均来自[风云社区 SCOEE],如想了解更多mac软件可上[风云社区 SCOEE]. 有需要其他类型的软件,可在评论区留言或私信于我[磨人的小妖精],以后也会不断更新更多专题资源. 有想要的软件资源,需要下载的也可以找我[磨人的小妖精]私信留言. 往期专题 ma

Linux好书、经典书籍推荐

Linux好书.经典书籍推荐 思想篇 <Linux/Unix设计思想> 图书将Unix与Linux的原理有效地结合起来,总结了Unix/Linux软件开发中的原则.在保留了第1版中Unix方面的内容的同时,强调了Linux和开源领域的新思想. 入门篇 <Linux程序设计(第4版)> <Linux程序设计>是Linux程序设计领域的经典名著,以简单易懂.内容全面和示例丰富而受到广泛好评.中文版前两版出版后,在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮一直

【转】30本关于asp.net相关的经典书籍推荐

引自:http://blog.csdn.net/shanzhizi/article/details/7731344 一.入门 1.<HTML与CSS入门经典(第7版) >HTML入门       点评:html语言的入门,由于html极其简单所以同类其他书也可代替,本书并非经典,本书摆在这里纯属占位!你可以用其他书代替. 2.<C#入门经典(第3版)>C#入门点评:经典中的经典,个人认为是30本书里最重要的,虽然其他讲C#的好书也很多但大多1.0版的,很多在书店已经绝版,被<

Mac影音多媒体工具软件推荐

今天和大家分享软件专题:「影音多媒体工具」,今天的「影音多媒体工具」主要包含音乐播放.音频编辑.视频播放.视频编辑.截图录像等类别的软件. 有需要其他类型的软件,可在评论区留言或私信于我[磨人的小妖精],以后也会不断更新更多专题资源. 有想要的软件资源,需要下载的也可以找我[磨人的小妖精]私信留言. 以下内容及软件资源均来源[风云社区SCOEE] 更多专题,可关注[磨人的小妖精],查看我的文章,也可上[风云社区 SCOEE],查找和下载相关软件资源. (一)综合类: Mac 装机必备软件推荐 2

时序图与状态图(Rose) - Windows XP经典软件系列

最近开始了自己高级数据结构之旅,在这次旅行中,我将持续把一些高级的数据结构从理论到编码都过一遍,同时通过博客形式分享出来,希望大家指出不足之处! 二叉排序树是一种动态排序的数据结构,支持插入.删除.查找等操作,且平均时间复杂度为O(log(N)),但是普通二叉排序树不能保证树退化为一颗分支的情况,此时最坏情况下的时间复杂度为O(N).此时,平衡二叉树的产生了.平衡二叉树是一种动态调整平衡的数据结构,但理想的平衡二叉树很难,于是人们使用AVL.红黑树.Treap.伸展树等来替代平衡二叉树,这些数据

类图(Rose) - Windows XP经典软件系列

最近开始了自己高级数据结构之旅,在这次旅行中,我将持续把一些高级的数据结构从理论到编码都过一遍,同时通过博客形式分享出来,希望大家指出不足之处! 二叉排序树是一种动态排序的数据结构,支持插入.删除.查找等操作,且平均时间复杂度为O(log(N)),但是普通二叉排序树不能保证树退化为一颗分支的情况,此时最坏情况下的时间复杂度为O(N).此时,平衡二叉树的产生了.平衡二叉树是一种动态调整平衡的数据结构,但理想的平衡二叉树很难,于是人们使用AVL.红黑树.Treap.伸展树等来替代平衡二叉树,这些数据

十款免费文件夹加密软件推荐

到底文件加密软件哪个好?现在人们越来越注意隐私保护,而保护电脑中的一些重要文件,最好的方式就是加密.文件加密软件既要考虑到加密安全可靠,又要考虑到系统稳定,同时也要想到万一密码忘记该怎么挽回损失,再者就是方便易用.提到文件加密软件,很多电脑用户都非常熟悉.文件加密软件主要是用于给文件设置密码,从而保护文件信息安全的方法.目前,可供电脑用户选择使用的文件加密软件还是非常多的.那么,哪个文件加密软件更好用呢?今天,小编就给大家推荐10款好用的电脑文件加密软件,希望可以帮到大家! 10款免费文件夹加密

精品软件 推荐 铁路订票网站12306手机订票客户端 家,就在身边

精品软件 推荐  铁路订票网站12306手机订票客户端  家,就在身边 中国铁路客户服务中心订票网站12306.cn今天低调推出手机客户端,目前支持iOS和Android两大系统,目前下载页面已经上线完毕(实际上只有Android能用,iOS版本估计要等到上了App Store才会发行),但我们并没有在首页上看到它的入口,下载测试后证实可用,无论如何大家先下了用用看吧: 官方地址:https://kyfw.12306.cn/otn/appDownload/init

Windows常用软件推荐

前言 很多人都认为我是计算机高手,其实我只会帮你修理下你的电脑啦,曾几何时我也帮助过好多好多的同学和老师,尝试和体验各种各样的软件,但谁又能想到我曾今也对你们的电脑做过很多失败的坑爹操作,把你们最宝贵的数据撸得灰飞烟灭,这里要感谢当时允许我不断尝试失败的大白鼠 @王纪华 tommy(249033945),使我养成了发散思维.逆向思维和创造性思维的解决问题之道.作为一名非职业HelpDesk,我一定不是最最优秀的那一群技术大牛,但我也努力超越了99.99%的从业者,Because I just l