SuperAPI AI 工具集

windbg-kernel-verifier-triage

通用与其它

查看项目

更新于 10-16 00:32

技能介绍

用途:当内核转储中出现 Driver Verifier 违规(如 0xC4、0xC9、0xE6 等 verifier 类 bugcheck)时,用于解码具体子码与契约违反。范围仅限 Driver Verifier;Application Verifier 属用户态,应改用 windbg-user-heap-corruption-investigation。已启用标志本身不证明存在违规。

主要能力:先使用 windbg-diagnostic-method 做证据排序、假设检验与置信度校准。工作流第一步保留 code、subcode 与活动配置: !analyze -v .bugcheck !verifier k 记录 bugcheck、子码、涉事驱动、启用的检查、目标版本与证据可用性;将每个子码对照其文档契约解码。小转储输出可能不完整,不因当前配置不同而丢弃已捕获证据。第二步在违规提供 IRP 地址且 I/O 验证状态可用时解码 I/O 历史: !iovirp <irp-address> !irp <irp-address> 影子状态可保留活动请求中丢失的信息,并与内核 IRP 生命周期排查技能关联完成、取消、挂起与属主状态。第三步恢复上下文或跟进依赖:异常/陷阱上下文用 windbg-kernel-bugcheck-triage;锁序证据用 windbg-kernel-lock-deadlock-triage;未完成或电源请求用 windbg-kernel-irp-lifecycle-triage;避免循环调用。第四步处理未覆盖违规:DDI 违规需定位确切前置条件(IRQL、生命周期、参数或属主)与破坏它的驱动调用;DMA 违规需检查适配器/map/unmap 与缓冲区生命周期证据。该包不提供每种 DDI/DMA 的专用解码器,需说明缺口并从文档和驱动源码继续。

用法与限制:不要未经批准启用 Driver Verifier,它可能故意使系统崩溃并暴露启动关键缺陷;应使用可恢复测试机、保存当前配置、选择相关厂商驱动/检查并在重启前商定回滚,不要默认验证所有已装驱动。只读查询配置:verifier /querysettings;verifier /reset 会清除设置且通常需重启才停止验证,属配置更改而非无害查询,应恢复此前有意的设置。验证时需指明被违反的契约、将记录操作关联到驱动源码,并在相同检查与负载下测试补救措施;记录转储/验证局限与未验证假设,单次复现通过不等于所有驱动路径安全。