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顯示以下畫面,這樣就能夠對驅動進行調試。