通过互联网做内核调试
Win8开始支持通过有线网络做内核调试,这个功能一般被简称为KDNET。最近有人在OSR的windbg讨论组里询问这种调试方式是否可以跨互联网上工作?
这是提问者提供的部分信息:
“Microsoft (R) Windows Debugger Version 6.3.9600.17029
AMD64 Copyright (c) Microsoft Corporation. All rights reserved.
Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...
Connected to target x.x.x.x on port 50000 on local IP
y.y.y.y.
Connected to Windows 8 9600 x64 target at (...)), ptr64
TRUE Kernel Debugger connection established.”
看起来已经成功建立连接,而且Host端已经拿到了目标机的一些信息。
但是也看到错误信息:
Received an out of order encrypted packet. Packet dropped.
Bad packet sent from x.x.x.x.
问题发出后,很快得到了非常权威的回复。回复者是微软的Joe Ballantyne。Joe是KDNET的开发者,我也曾就KDNET的问题和他通过很多次邮件。
Joe的回答是肯定的,可以跨互联网调试。
“We have successfully used KDNET to debug machines on the
other side of the world just fine.
”It was part of what we tested when KDNET was first
developed.
“Now granted, that was on Microsoft's internal corporate
network, but we debugged machines in India from Redmond, without issue.”
据此可以肯定的说,在某些情况下,KDNET是可以跨互联网工作的。