软件调试笔记21 - WINDOWS验证机制
2017-11-30 12:51
369 查看
常见测试手段:
![](https://img-blog.csdn.net/20171130123710368)
虽然各种测试都有优势跟侧重点,但即使用了所有的手段,也不能保证会发现所有的问题,比如测试的时候运行环境和条件不足以将错误触发并暴露出来。所以WINDOWS系统提供了验证机制来满足这个需求。
WINDOWS验证机制简介:
从编译和构建角度,WINDOWS的系统映像文件有CHECKED和FREE版本,差别是CHECKED版本包含断言。但断言只是检查软件自身的,与WINDOWS的验证机制不一样。验证机制主要目标是检查被测试软件,或者说是为了被测试软件提供一个验证器Verifier。
验证器分为驱动程序验证器和应用程序验证器,将重点介绍应用程序验证器。
应用程序验证器:
应用程序验证器分两部分:实现在NTDLL中的一系列函数,和应用程序验证器的工具包。用来发现软件与系统的兼容性,内存分配,内核对象使用和API调用等情况。
设计原理是通过挂接应用程序的IAT表来截取应用程序对编程接口API的调用,然后验证它是否符合WINDOWS SDK所定义的设计规范。
组成:
应用验证器由3个部分组成:
![](https://img-blog.csdn.net/20171130124712176)
虽然各种测试都有优势跟侧重点,但即使用了所有的手段,也不能保证会发现所有的问题,比如测试的时候运行环境和条件不足以将错误触发并暴露出来。所以WINDOWS系统提供了验证机制来满足这个需求。
WINDOWS验证机制简介:
从编译和构建角度,WINDOWS的系统映像文件有CHECKED和FREE版本,差别是CHECKED版本包含断言。但断言只是检查软件自身的,与WINDOWS的验证机制不一样。验证机制主要目标是检查被测试软件,或者说是为了被测试软件提供一个验证器Verifier。
验证器分为驱动程序验证器和应用程序验证器,将重点介绍应用程序验证器。
应用程序验证器:
应用程序验证器分两部分:实现在NTDLL中的一系列函数,和应用程序验证器的工具包。用来发现软件与系统的兼容性,内存分配,内核对象使用和API调用等情况。
设计原理是通过挂接应用程序的IAT表来截取应用程序对编程接口API的调用,然后验证它是否符合WINDOWS SDK所定义的设计规范。
组成:
应用验证器由3个部分组成:
相关文章推荐
- 软件调试笔记22 - WINDOWS验证机制 :使用应用程序验证器
- [软件调试学习笔记]WinDbg演示IA-32 CPU下的Windows 分页机制下的地址转换过程
- [软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制
- [软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制
- [软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制
- 软件调试笔记8 - Windows概要:进程和进程空间
- 软件调试笔记12 - Windows概要:架构和系统部件
- [软件调试学习笔记]防止栈缓冲区溢出的基于Cookie的安全检查机制
- 软件调试笔记10 - Windows概要:进程结构:令牌,PEB,ID, 句柄
- 软件调试笔记9 - Windows概要:进程结构:EPROCESS
- 遭遇“windows已经阻止此软件因为无法验证发行者”
- oracle的三种密码验证机制以及在windows和linux下的不同启动过程
- vc学习笔记之windows程序内部运行机制
- 软件调试笔记13 - 用户态调试模式:参与者
- windows代理软件-调试socket代理-详细日志
- 控件无法安装,windows已经阻止此软件因为无法验证发行者
- 孙鑫-MFC笔记一--Windows程序内部运行机制
- 调试失败,因为没有启用集成 Windows 身份验证
- Undocumented Windows 2000笔记之二:Windows调试支持
- windows下调试软件错误记录