繁体   English   中英

如何正确调试Windows内核驱动程序?

[英]How to debug a Windows kernel driver properly?

我正在尝试设置Windows VM的环境以调试内核驱动程序。

我在Visual Studio 2017中创建了一个内核驱动程序示例。 文件 - >新建项目 - >内核模式驱动程序基本项目 ;仅用于测试 - 自动生成的跟踪宏,所需的过程等),并希望在目标计算机上对其进行测试。

有我的步骤( 目标机器 ):

  1. 将Windows 10安装到虚拟机(VirtualBox);
  2. 打开测试模式并将BCDEdit设置为本地 ;
  3. 安装WDK ;
  4. 下载OSR Loader ;
  5. 将建筑物后的文件复制到VM(C:\\ DriverTest \\ TestKernelDriver2 \\; .cer.inf.pdb.sys );
  6. 创建跟踪文件夹; C:\\ DriverTest \\ TestKernelDriver2 \\痕迹\\
  7. 安装证书 - TestKernelDriver2.sys ; 签名模式测试标志
  8. 运行OSR Driver Loader ,选择驱动程序,按Register serviceSuccess )。
  9. 使用params运行tracelog (GUID由模板生成;没有通过Tools-> Create GUID ) - 成功

    tracelog -start TestKernelDriver2 -guid #0f4fbb98-1569-495b-88d1-f654b1e2d68e -f C:\\DriverTest\\TestKernelDriver2\\traces\\trace.etl -flag 2 -level 0xFFFF

  10. 检查C:\\ DriverTest \\ TestKernelDriver2 \\ traces \\ trace.etl; (存在 - 64KB大小)

  11. OSR驱动程序加载程序:按启动服务失败 )。 错误消息: 找不到指定的过程。
  12. 停止tracelog - 成功

    tracelog -stop TestKernelDriver2

  13. 打开事件查看器 Windows日志 - >系统 最后一个错误:

    The TestKernelDriver2 service failed to start due to the following error: The specified procedure could not be found.

    Details: EventData param1 TestKernelDriver2 param2 %%127 54006500730074004B00650072006E0065006C0044007200690076006500720032000000

  14. 通过事件查看器打开C:\\ DriverTest \\ TestKernelDriver2 \\ traces \\ trace.etl,看不到任何日志。

我怎样才能知道错过了什么程序?

我试图通过Dependency Walker进行调查,并发现错过了一些.sys文件( WppRecorder.sysWdfLdr.sysmsrpc.sysEXT-MS- WIN- ### .DLL )。 这些字段位于C:\\ Windows \\ System32 \\ drivers。 我将文件复制到C:\\ Windows \\ System32和Dependency Walker平静下来。 那么EXT-MS-WIN - * .DLL - 我在这个主题中读到这些文件可能会被遗漏。

感谢@ magicandre1981。 我通过PnPUtil安装了我的驱动程序。 但现在,我在pnputil / enum-drivers命令列表中看到它。

在此输入图像描述

但是当我在WinDbg中运行以下命令时,我在列表中看不到我的驱动程序:

!load wdfkd.dll
!wdfkd.wdfldr

在此输入图像描述

我正在尝试从这个Microsoft ttutoriall中创建会话1的步骤。

我通过tracefmt生成器和TraceView应用程序找到了解决方案。

步骤0 :通过命令生成tmf文件:

tracefmt С:\TestDriver\TestKernelDriver2\TestKernelDriver2.etl -i С:\TestDriver\TestKernelDriver2\TestKernelDriver2.sys -r С:\TestDriver\TestKernelDriver2\TestKernelDriver2 -p С:\TestDriver\TestKernelDriver2\tmfs -o С:\TestDriver\TestKernelDriver2\TestKernelDriver2.txt -v

步骤1 :在TraceView中创建会话: 文件 - > 创建新会话 填写手动输入的控件GUID 0f4fbb98-1569-495b-88d1-f654b1e2d68e

步骤2选择WPP格式信息源设置TMF搜索路径选项)并填充路径: C:\\ DriverTest \\ TestKernelDriver2 \\ tmfs

步骤3接下来 ,选中填充日志会话名称实时显示 完成

TraceView设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM