说到WRK其实是很好的调试环境,对于驱动开发也有许多帮助,他不仅仅可以理解内核也可以在驱动代码出错后更好的定位出错信息 毕竟内核是自己build的pdb也都可以被windbg加载。
本节就讲讲WRK的调试环境搭建,需要的工具如下:
名称 | 链接 |
---|---|
WRK源码 | http://download.csdn.net/detail/u013605639/9762033 |
VirtualKD | http://virtualkd.sysprogs.org/download/ |
VMware Workstation Pro | https://www.vmware.com/products/workstation.html |
cn_win_srv_2003_r2_standard_with_sp2_vl_cd1_X13-46532.iso | http://msdn.itellyou.cn/ |
1.首先安装03系统,此过程不描述。
2.编译WRK:
2.1 找msvcp71.dll和msvcr71.dll 复制到 WindowsResearchKernel-WRK\WRK-v1.2\tools\x86 目录下
2.2 把WindowsResearchKernel-WRK\WRK-v1.2\tools\x86 设置到系统环境变量path ;D:\OS\WindowsResearchKernel-WRK\WRK-v1.2\tools\x86
2.3 cmd 进入D:\OS\WindowsResearchKernel-WRK\WRK-v1.2\base\ntos 目录下然后nmake -nologo x86=
等待编译完成。
2.4 将编译好了的D:\OS\WindowsResearchKernel-WRK\WRK-v1.2\base\ntos\BUILD\EXE\wrkx86.exe 和 D:\OS\WindowsResearchKernel-WRK\WRK-v1.2\tools\x86\link.exe 和 D:\OS\WindowsResearchKernel-WRK\WRK-v1.2\tools\x86\mspdb71.dll 拷贝到 windows 2003 虚拟机的 C:\WINDOWS\system32目录下。
2.5 在虚拟机中 cmd 下进入C:\WINDOWS\system32 输入 link -dump -all hal.dll | findstr pdb
此时显示出HAL的动态库
原始Dll | 替换Dll |
---|---|
Halacpi.dll | Halacpim.dll |
Halaacpi.dll | Halmacpi.dll |
Halapic.dll | Halmps.dll |
在表中选择对应的HAL动态库与pdb拷贝到虚拟机的 C:\WINDOWS\system32目录下
3.链接Windbg调试:
在虚拟机中取消掉保护文件
打开boot.ini 编辑如下
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard [VirtualKD]" /DEBUG /DEBUGPORT=com /fastdetect /noexecute=optout /kernel=wrkx86.exe /hal=halmacpi.dll
重启系统 链接VirtualKD 看到如下界面代表已经大功告成!