尝试使用 WinDbg Preview 安装网络内核调试后 Windows 10 v.1803 启动失败

逆向工程 视窗 调试 风袋 内核模式
2021-07-09 05:59:55

我正在尝试在物理硬件/桌面上设置内核调试以测试新的 WinDbg 预览版。以下是步骤:

  1. 我使用的是带有Intel DG41TY的台式机

  2. 已安装 Windows 10 Pro build 1803。(关闭 USB,使用媒体创建工具创建。)

  3. 该板有一个支持的网卡

    PCI\VEN_10EC&DEV_8168&SUBSYS_D6128086&REV_03
    
  4. 通过从提升的cmd192.168.1.29调试器机器 IP 地址在哪里运行以下命令,通过以太网电缆准备调试对象进行内核调试

    bcdedit /debug on
    
    bcdedit /dbgsettings net hostip:192.168.1.29 port:50000 key:1.2.3.4
    
    bcdedit /set "{dbgsettings}" busparams 3.0.0
    

    在此处输入图片说明

    我将其全部设置为默认启动配置,因为该 PC 不应该有显示器、鼠标或键盘,因此它可以在默认情况下启动到调试模式。(为了进一步控制,我假设远程桌面进入它。)

  5. 通过以太网电缆将其连接到我的 Windows 10 Pro 笔记本电脑。

  6. 在调试器笔记本电脑上,我使用的是新的 Windows Store 版本的WinDbg Preview

    Debugger client version: 1.0.1805.17002
    Debugger engine version: 10.0.17674.1000
    
  7. 在 WinDbg 中,我这样设置网络内核调试:

    我不确定那个新的“目标”字段是什么意思,我假设它是目标机器(或被调试者),所以我给了它那个桌面的 IP 地址:

    在此处输入图片说明

  8. 然后重新启动被调试者桌面……什么也没发生。Windows 10 在启动过程中挂了。我认为我没有在调试对象端设置正确的东西,关闭了 WinDbg 并尝试重新启动调试对象机器。但它再次在启动过程中挂断了。

  9. 此时,我断开了以太网电缆的连接,不得不使用该桌面上的电源按钮重新启动它。又失败了一次,然后Windows蓝色菜单出现说无法自动恢复,需要重置。(我不记得确切的措辞。)

  10. 所以大约 2 小时后,它恢复了,桌面(调试对象)现在可以启动,但它清除了我安装在它上面的所有东西。(我可以恢复所有已安装的软件,因为它是全新安装的。)

所以我想知道我是否做错了什么,是否还有其他人处理过同样的问题?

附注。我只是想避免在将来为这样的重置浪费 2 个多小时。


编辑:我能够用 SSD 更换这台测试 PC 中的 HDD,然后从头开始重新安装 Windows 10,并重复我上面描述的步骤。当我启用内核网络调试时,那台 PC 的启动速度明显变慢(大约 2 分钟,而原来的 15-20 秒)

之后,只要我将以太网电缆从那台测试 PC 连接到我的 Windows 10 笔记本电脑,WinDbg Preview 等待连接,启动过程就从未完成。WinDbg Preview 也从未连接到该远程 PC。

过了一会儿,我断开了以太网电缆的连接,并通过按住电源按钮强制重启。这次在看到旋转点大约 2-3 分钟后,启动过程冻结了。这是确切的屏幕:

在此处输入图片说明

然后当我再次强制重新启动它时,它显示:

在此处输入图片说明

然后:

在此处输入图片说明

并最终:

在此处输入图片说明

(幸运的是,这次我在执行上述测试之前创建了一个还原点。默认情况下,Windows 10 中的还原点是关闭的。因此,在单击“高级选项”后,我能够从还原点进行还原。)

C:\Windows\System32\LogFiles\Srt\SrtTrail.txt上面截图中提到文件包含以下内容:

Startup Repair diagnosis and repair log
---------------------------
Number of repair attempts: 1

Session details
---------------------------
System Disk = \Device\Harddisk0
Windows directory = C:\Windows
AutoChk Run = 0
Number of root causes = 1

Test Performed: 
---------------------------
Name: Check for updates
Result: Completed successfully. Error code =  0x0
Time taken = 0 ms

Test Performed: 
---------------------------
Name: System disk test
Result: Completed successfully. Error code =  0x0
Time taken = 0 ms

Test Performed: 
---------------------------
Name: Disk failure diagnosis
Result: Completed successfully. Error code =  0x0
Time taken = 16 ms

Test Performed: 
---------------------------
Name: Disk metadata test
Result: Completed successfully. Error code =  0x0
Time taken = 296 ms

Test Performed: 
---------------------------
Name: Disk metadata test
Result: Completed successfully. Error code =  0x0
Time taken = 16 ms

Test Performed: 
---------------------------
Name: Target OS test
Result: Completed successfully. Error code =  0x0
Time taken = 0 ms

Test Performed: 
---------------------------
Name: Volume content check
Result: Completed successfully. Error code =  0x0
Time taken = 63 ms

Test Performed: 
---------------------------
Name: Boot manager diagnosis
Result: Completed successfully. Error code =  0x0
Time taken = 0 ms

Test Performed: 
---------------------------
Name: System boot log diagnosis
Result: Completed successfully. Error code =  0x0
Time taken = 15 ms

Root cause found: 
---------------------------
Boot critical file c:\efi\microsoft\boot\resources\custom\bootres.dll is corrupt.

Repair action: File repair
Result: Failed. Error code =  0x57
Time taken = 2328 ms

---------------------------
---------------------------

此外,如果 Microsoft 的任何人希望我通过电子邮件将整个C:\Windows\System32\LogFiles\Srt文件夹发送给您,我可以应要求这样做

1个回答

您需要使用正确的以太网电缆。如果您将目标直接连接到调试器主机,则需要使用交叉电缆,而不是普通的以太网电缆。或者,如果您没有交叉线,则需要使用交换机/集线器来连接设备。如果可能,我会在启用调试之前检查设备之间的 TCP/IP 通信是否正常。

只需检查:

  1. 在调试器主机上运行ipconfig并确定您将使用的以太网适配器的 IP 地址
  2. 在目标计算机上确保ping -4 hostip正常工作。您可能需要允许 ICMP 流量通过防火墙才能使其工作。

此外,在主机调试器机器上,您需要允许流量通过 Windows 防火墙(或安装的任何其他 3rd 方防火墙)

当您第一次尝试建立网络调试连接时,系统可能会提示您允许调试应用程序(WinDbg 或 KD)通过防火墙进行访问。Windows 的客户端版本显示提示,但 Windows 的服务器版本不显示提示。您应该通过选中所有三种网络类型的框来响应提示:域、私有和公共。如果您没有收到提示,或者如果您在提示可用时没有选中这些框,则必须使用控制面板来允许通过防火墙进行访问。打开控制面板 > 系统和安全,然后选择允许应用程序通过 Windows 防火墙。在应用程序列表中,找到 Windows GUI Symbolic Debugger 和 Windows Kernel Debugger。使用复选框允许这两个应用程序通过防火墙。重新启动调试应用程序(WinDbg 或 KD)。