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显示以下画面,这样就能够对驱动进行调试。