我曾经使用调试Windows内核 虚拟对话, N.风,风 和单个虚拟机。

最近我得到了一台Linux机器,现在我想知道-当你的主机无法运行时,调试Windows内核的最简单方法是什么 虚拟键盘/WinDBG*?

我假设解决方案将需要两个虚拟机,但我宁愿在我的实际机器上托管两个实例,而不是让一个实例驻留在另一个虚拟实例中。..

有没有办法做到这一点?

提前感谢!

*葡萄酒是出于稳定性原因的最后手段。..

有帮助吗?

解决方案

解决了!基本上,我最终使用了两个(VirtualBox) VMS Unix域插座上模拟串行连接(null-modem电缆) (在主机上)。有关更多信息,请阅读以下内容:

硬件设置*:

  • DEBUGDEE:
    • 确保机器已关闭并编辑串口设置。
    • 启用端口1 ,分配值如下:端口号: com1 ,端口模式:主管,Create Pipe:<强>未选中(客户),端口/文件路径: / tmp / win_link
  • 调试器:
    • 与上面相同(使用相同的路径),只有此时间创建管道应该检查(服务器)。

调试器设置:

  • 运行windbg并按ctrl + k来调用内核调试
  • com 中,输入:baudrate:115200,端口:com1,重置:0并验证管道和重新连接未选中(重要)。
  • 您将呈现以下输出:Opened \\\\.\com1 Waiting to reconnect...

DEBUGGEE SETUP:

  • 运行 bootcfg / debug on / port com1 / baud 115200 / ID 1 。要验证,请运行 bootcfg 。**
  • 重新启动。
  • 在引导阶段很早,另一台机器上的Windbg应该检测到Dewuggee正在运行。

*假设使用VirtualBox。 VMware / KVM用户可能会在类似的步骤达到相同的结果。此外,有关详细信息,请参阅 VirtualBox Docs

**假设访客是Windows XP。更高版本包括BCDedit,它可以用描述这里

其他提示

非常有用,但适用于Windows XP机器。如果需要在Linux主机上配置基于Windows7的虚拟机: http://www.aldeid.com/wiki/category:digital-forensics/computer-forensics/debugger/kernel

现在的另一种选择是启用本地内核调试。这带有一些 限制, ,但是它将使您能够访问内核数据,而只是使用 一个 VM。

此方法仅适用于Windows8.0和Windows Server2012及更高版本。

按照以下步骤操作:

  1. 以管理员身份打开命令提示符窗口。
  2. 进入 bcdedit /debug on
  3. 如果计算机尚未配置为调试传输的目标,请输入 bcdedit /dbgsettings local
  4. 重新启动计算机。

一旦系统重新启动,您可以执行 WinDBG 作为 Administrator,按 ctrl+k 或前往 File -> Attach to kernel -> Local 然后按确定。

Attach to Kernel Option

此时,您将能够执行仅内核命令并访问内核结构:

enter image description here

在Windows10和新的WinDBG版本(预览)下测试.

参考资料: 手动设置单台计算机的本地内核调试

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top