Windbg双机调试
本文中的双机调试是通过两个机器处于同一网络下,使用网网络进行调试,适用于两个物理机,或物理机和虚拟机组合等情况,以下是具体步骤:
1.host端,下载和安装Windows SDK;
2.host端,安装Windbg;
3.host端,在windbg安装目录找到如下文件:
Debuggers\x64\kdnet.exe
Debuggers\x64\VerifiedNICList.xml
把这两个文件复制到Target端。
4.target是物理机则让host和target处于同一网络下,target是虚拟机,则使用桥接网络,两者均需关闭security boot(BIOS中设置)。
5.target端,启动管理员cmd,执行如下命令:
kdnet.exe ${Host IP} ${Port}
其中,${Host IP}替换成host端的IP,${Port}是端口,范围50000~50039(其它值其实也行,一般用这个范围),替换成其中一个端口。
执行命令行后,会得到一串处理结果,类似于如下格式:
windbg -k net:port=50015,key=XXXXXXXXXXXXXXXX
6.target端,打开防火墙规则:
Control Panel --> System and Security --> Windows Defender Firewall --> Advanced Settings --> Inbound Rules --> 打开File and Printer Sharing (ICMPv4-In).
7.host端,打开windbg或windbg preview,以后者为例:
File --> Settings --> Debugging settings --> Default symbol path,填入如下值:
srv*d:\mysymbol*https://msdl.microsoft.com/download/symbols
接着,
File --> Start debugging --> Attach to kernel --> Net,填入端口号50015(上例中使用端口50015),key则填入target端运行kdnet命令实际生成的值 --> 勾选Break on connection --> 点击确认启动调试。
重启target机器,就可以正常调试了。