You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查WDM/KMDF驱动是否应用retpoline修复及定位未修复驱动

检查WDM/KMDF驱动是否包含Retpoline修复及批量排查方法

单个驱动的检查方式

方法1:通过dumpbin查看导入表

打开Visual Studio 2022对应的开发者命令提示符(匹配驱动架构,比如x64 Native Tools Command Prompt),执行以下命令:

dumpbin /imports 你的驱动文件.sys

在输出结果里找是否存在KiRetpolineJump或KiRetpolineCall这两个来自ntoskrnl.exe的导入函数。有则说明驱动已应用Retpoline修复,无则未修复。

方法2:反汇编检查代码特征

同样用开发者命令提示符,执行反汇编命令:

dumpbin /disasm 你的驱动文件.sys

在输出中搜索jmp qword ptr [KiRetpolineJump]或call qword ptr [KiRetpolineCall]这类指令,这是Retpoline缓解Spectre漏洞的典型代码特征。

批量排查多个驱动

如果要一次性检查打包里的所有.sys文件,可以写批处理脚本自动遍历检查:

@echo off
setlocal enabledelayedexpansion

for %%f in (*.sys) do (
    echo === 检查文件: %%f ===
    dumpbin /imports "%%f" | findstr /i "KiRetpolineJump KiRetpolineCall" > nul
    if !errorlevel! equ 0 (
        echo 已包含Retpoline修复
    ) else (
        echo *未包含Retpoline修复*
    )
    echo.
)
pause

把脚本存为CheckRetpoline.bat,放到驱动文件所在目录,运行后就能批量输出每个驱动的检查结果。

修复未包含Retpoline的驱动

若排查出未修复的驱动,需在Visual Studio 2022中重新编译时开启Spectre缓解:

  • 右键项目→属性→配置属性→C/C++→代码生成,将Spectre缓解设为是(/Qspectre)
  • 确认链接器配置里,配置属性→链接器→命令行包含/INCREMENTAL:NO(增量链接会影响Spectre缓解生效,建议关闭)
  • 确保项目使用的WDK版本为10.0.22621.0,且目标平台版本与编译环境匹配

内容的提问来源于stack exchange,提问作者Christian Troester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:39:57