我用来调试Windows内核使用VirtualKD,WinDBG和单个虚拟机。从Linux调试Windows内核
最近我买了一台Linux机器,现在我想知道 - 当主机无法运行时,调试Windows内核的最简单方法是什么?VirtualKD/WinDBG *?
我认为解决方案将需要两个虚拟机,但我宁愿我的托管实际机器上的两个实例,而不是居住在另一个内部的虚拟实例的实例...
反正是有使这项工作?
在此先感谢!
*葡萄酒是出于稳定性的原因不得已......
我用来调试Windows内核使用VirtualKD,WinDBG和单个虚拟机。从Linux调试Windows内核
最近我买了一台Linux机器,现在我想知道 - 当主机无法运行时,调试Windows内核的最简单方法是什么?VirtualKD/WinDBG *?
我认为解决方案将需要两个虚拟机,但我宁愿我的托管实际机器上的两个实例,而不是居住在另一个内部的虚拟实例的实例...
反正是有使这项工作?
在此先感谢!
*葡萄酒是出于稳定性的原因不得已......
解决了!基本上,我结束了使用(VirtualBox的)虚拟机仿效串行连接(交叉线)在Unix域套接字(在主机上)。欲了解更多信息,请阅读下面:
硬件设置*:
调试器设置:
Opened \\\\.\com1 Waiting to reconnect...
调试设置:
*假设使用VirtualBox。 VMWare/KVM用户可能可以通过类似的步骤获得相同的结果。另外,更多信息请参考VirtualBox docs。
**假设客人是Windows XP。后来的版本包括bcdedit,其可以如here所述使用。
对于QEMU \ KVM遵守这些指示: http://www.linux-kvm.org/page/WindowsGuestDrivers/GuestDebugging
非常有帮助的,但适用于Windows XP的机器。如果您需要在Linux主机上配置2个基于Windows7的虚拟机,请参考以下链接:http://www.aldeid.com/wiki/Category:Digital-Forensics/Computer-Forensics/Debugger/Kernel
现在的另一种选择是启用本地内核调试。这附带一些limitations,但是它将使您能够访问内核数据,而只需使用一个虚拟机。
此方法仅适用于Windows 8.0和Windows Server 2012及更高版本。
遵循以下步骤:
bcdedit /debug on
bcdedit /dbgsettings local
一旦系统重新启动,可以执行WinDBG
作为Administrator
,按ctrl+k
或去File -> Attach to kernel -> Local
,然后按OK。
在这一点上,你就可以只执行内核命令和访问内核结构:
的Windows 10下,在新的WinDBG版本测试(预览) 。
参考:Setting Up Local Kernel Debugging of a Single Computer Manually
你的配置似乎完美的,但不管我用什么配置,我看不出两个我的Windows虚拟机的串行端口。你有过这样的问题吗? –