WinDbg是Windows的一个调测工具。我们知道Windbg可以对导致系统崩溃的现象进行分析,不仅可以对内核(kernel)产生的dump文件进行分析,也可以直接连接上网络中另一台主机的内核进行分析。本文介绍如何建立远程内核调测环境的方法。
建立windows内核远程调测(Network Kernel Debugging)环境,一个关键点是需要网卡设备的支持。不同的系统需要不同的网卡,在微软网站上可以找到相关说明。例如:Supported Ethernet NICs for Network Kernel Debugging in Windows 10 描述了windows10中哪些厂商哪些网卡支持此功能。
有了相应的设备支持后,我们就可以设置相关的网络信息。下面以A机为调测机器,B机为被调测机器(被分析内核的机器)说明。
1.环境准备
A机:安装好WinDbg
B机:有对应网卡支持
其它: 网络是联通的
2. B机设置
1)检测网络连通性
ping -4 <A ip>
2)打开调测功能
bcdedit /debug on
3)生成Key,用于A机的windbg中.
w.x.y.z表示B机ip地址,port是用于调测的端口号,一般默认为50000。如果被占用可以使用其它端口号,建议在(50000 - 50039)之间的选一个
bcdedit /dbgsettings net hostip:w.x.y.z port:n
4)设置用于调测用的PCI设备(此处即上面选定的网卡),需要设置pci bus, device id, function number
bcdedit /set "{dbgsettings}" busparams b.d.f
上面命令中的b,d,f,对应设备管理器中如下网卡设备中所示的1,2,3
3.A机设置
主要是WinDbg的设置
1)设置symbol
将symbol地址填在:“File->Symbol File Path”中
2)设置Kenel Debug
打开“File->Kernel Debugging" ,在NET一页,Port Number中填入50000(或其它选定的端口号),key中填入前面B机生成的key.
点击”OK“, 即进入待联机调测状态。
4.重启B机
可使用以下命令重启
shutdown -r -t 0
重启后,如果一切正常,则可以在A机的WinDbg窗口中见到”Connected to ...."字样。
接下来就可以进一步进行分析了。