簡體   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