Windows下如何調試驅動程序

Windows內核分析索引目錄:https://www.cnblogs.com/onetrainee/p/11675224.htmlhtml

 

1、配置Windbg使用雙機調試函數

  win10中「windbg+vmware+win7雙機調試」設置:https://blog.51cto.com/duallay/1982741spa

 

2、設置好Windbg符號表操作系統

  注意:不一樣的符號表項之間使用 引號(;) 分割。調試

    

  1) 表中填寫以下內容:code

    srv*d:\symbolslocal*http://msdl.microsoft.com/download/symbols;htm

    C:\Users\97905\source\repos\KMDF Driver1\Debugblog

    第一項是操做系統所調試的符號,當在 "d:\symbolslocal" 找不到時,其會前往微軟官方 "http://msdl.microsoft.com/download/symbols"下載該符號表。
索引

    第二項是被調試軟件所使用的符號,在生成 驅動文件.sys 時還對應生成一個很大的 驅動.pdb 文件,該文件就是用來調試驅動程序的符號文件。get

  2)在windbg中使用 ".reload" 命令加載符號表,等待一段時間使其加載完成。

 

3、在驅動代碼中添加 `int 3` 斷點

  

 1 #include <ntifs.h>
 2 
 3 //提供一個卸載函數,讓程序能卸載,若是沒有這個函數,驅動將不能卸載。
 4 VOID UnDriver(PDRIVER_OBJECT driver)
 5 {
 6     KdPrint(("卸載驅動成功"));
 7 }
 8 //入口函數,至關於main。
 9 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
10 {
11     __asm {
12         int 3
13         xor eax,eax
14         xor eax,eax
15         xor eax,eax
16     }
17 
18     KdPrint(("Hello World!"));
19     driver->DriverUnload = UnDriver;
20     return STATUS_SUCCESS;
21 }

 

 

4、生成 驅動.sys 文件,在虛擬機中打開。若是配置正確,其操做系統會自動暫停,而且Windbg顯示以下畫面,這樣就能夠對驅動進行調試。

相關文章
相關標籤/搜索