检查驱动程序

检查驱动程序

ID:46889578

大小:90.00 KB

页数:19页

时间:2019-11-28

检查驱动程序_第1页
检查驱动程序_第2页
检查驱动程序_第3页
检查驱动程序_第4页
检查驱动程序_第5页
资源描述:

《检查驱动程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、・1DriverVerifierDriverVerifier是一可帮助监视一个或多个内核模式驱动程序以证实他们没有非法函数调用或引起系统讹误的工具,DriverVerifier在H标驱动程序上执行广泛的测试和检杳任务。例如,如果驱动程序以非正当的IRQL使用了内存,不正当地调用或释放口旋锁和内存分配,或者释放内存池时没有首先删除任何定时器,DriverVerifier将发布合适的错误检查。当未装载驱动程序时,DriverVerifier检查确信驱动程序已经止确地清理了队列、线程和其他项冃。此外,DriverVerifier能够执

2、行以下任何情况:■从一个特别内存池分配驱动程序内存请求,该过程测试驱动程序是否访问它的内存分配之外的内存,或者在释放它的分配之后访问内存。■通过使内存分页代码无效而给驱动程序极端的内存压力,这个过程揭示了访问分页内存的企图,分页的内存发生在当错课的IRQL或当保留一自旋锁时。■池分配的随机失效或具他的内存请求,该过程测试了驱动程序处理低内存状况的能力。■未装载的驱动程序检查所有的内存分配,以确信驱动程序没有漏掉内存。■从一特别池分配驱动程序的IRP,监视驱动程序I/O以处理其他不一致的行为。这些能力可以分別激活或禁止,此外,Dr

3、iverVerifier可同时用于任何数目的驱动程序。下而的部分解释了驱动程序的丁作方而:■2.1.1DriverVerifier的能力详细描述了DriverVerifier各个作用,它应用于除过图形驱动程序之外的所有内核模式驱动程序。■2.1.2图形驱动程序的DriverVerifier的能力描述了DriverVerifier对内核模式图形驱动程序的作用,这里内核模式图形驱动程序使用了图形驱动程序接口(GDI)。■2.1.3激活和监视DriverVerifier解释了怎样启动DriverVerifier,怎样选择所要的功能,怎

4、样选择所要检杳的驱动程序,也解释了如何利用DriverVerifierManager来监视正被检查的驱动程序的行为。注意:DriverVerifier能够检查任何数目的驱动程序,然而,当特别内存池和I/O检查选项同时运用于一驱动程序时,其效果将更为有效。1.1.1DriverVerifier的能力DriverVerifier有两种能力:一种是一直起作用,另一「种只有被选择时才起作用。以下是对DriverVerifier所有能力的描述:■2.1.1.1自动检查这些是一直起作用的功能,比如IRQL和内存例程的检查,检查定时器检查释放

5、的内存池,检查驱动程序的正确卸载。■2.1.1.2特别内存池这个功能使用了一个特别池来测试内存的上溢和下溢,及在内存释放Z后的访问。■2.1.1.3强迫IRQL检查这个功能给驱动程序极端的内存压力来揭示内存分页的故障。■2.1.1.4低资源模拟这个功能注入随机分配错误和其他被拒决的请求来测试驱动程序在低内存状况下的响应。■2.1.1.5内存池跟踪这个功能检查当驱动程序被卸载时所有内存分配已经释放。■2.1.1.6T/0检查这个功能监视驱动程序I/O对非法或不一致的行为的处理。不论DriverVerifier检查一个或多个驱动程序

6、,它将执行以卜•功能,这些功能不受任何DriverVerifier选项的允许和禁止之影响。IRQL和内存例程的检查DriverVerifier为下面被禁止的功能而监视所选择的驱动程序。■通过调用KeLowerlrql提高IRQL■通过调用KeRaiselrql降低IRQL■零内存分配请求■在APC_LEVER之上的IRQL分配和释放分页池■在DIPATCH_LEVER之上的IRQL分配和释放非分页池■尝试释放一个没有从前面的分配里返冋的地址。■尝试禅放一个已被释放的地址。■在APC丄EVER之上的在IRQL获取和释放一个快速的互

7、斥体■在IRQL而非在DIPATCH丄EVER之上获取和释放一个口旋锁■双倍释放一个口旋锁■指定一非法或随机(未初始化的)参数给任一API。如果DriverVerifier没有运行,在所有状况下,这些故障不大可能会引起立即的系统崩溃,如果以上任何故障发生,则DriverVerifier监视驱动程序的行为并发布错误检测0xC4o(参看微软调试程序文档的使用来获得错误检查参数。)检查被释放的内存池定时器DriverVerifier检查所有被检查驱动程序所释放的内存池,如果任何定时器保留在该池里,发布错误检测0xC7o(遗忘的定时器能

8、导致最终系统崩溃,这是最难考虑到的。)检查驱动程序的卸载当一个正被检查的驱动程序卸载后,DriverVerifier执行儿个检查来确信驱动程序已被清空。特别地,DriverVerifier寻找下面部分:■未删除的定时器■耒定的DPC■未删除的辅助列表■未删除的T

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。