windows - 创建 QEmu guest 操作系统的 WinDbg 可读转储

标签 windows windbg dump qemu crash-dumps

我在 Linux 上运行 QEmu,虚拟化操作系统是 Windows XP。我想要第一种或第二种可能性:

  1. 在 QEmu 中应用一个命令,创建一个可以用 WinDbg 打开的转储
  2. 在 QEmu 中应用一个创建特定类型转储的命令,然后使用另一个实用程序使其可被 WinDbg 读取

我知道 QEmu 的“dump-guest-memory”(创建 ELF 转储)、rekall 的 raw2dmp 插件和 Volatility 的 raw2dmp 插件。 WinDbg 可以扫描输出,但实际上您会遇到 header 错误的问题 - 可能是转储中最重要的部分,当使用上述工具/插件创建转储时,这毫无用处。许多字段缺少正确的详细信息。与 Windows 操作系统本身创建的普通转储(例如,崩溃时)相比,它包含完整且正确的信息。

我是一名学生,我接到了解决这个问题的任务。我认为确保它还没有被任何人完成是合理的,所以这样做确实有意义。

最佳答案

如果 Qemu Monitor 命令是可接受的,请在 guest 操作系统中设置 crashonctrlscroll 注册表项

在 SystemApplet 中设置转储创建参数

Mycomputer->properties->Advanced->Startup and Recovery->Settings->Complete memory dump)
path , no overwrite , uncheck automatically restart     

并从 Qemu 监视器外壳使用 sendkeys ctrl_r-scroll_lock-scroll_lock

这将生成一个与 windbg 兼容的转储

manually initiated_crash bugcheck code 0xe2 

在 32 位 xp32 操作系统上运行在 qemu 中的 700 mb 内存 xp64 客户操作系统的屏幕截图 enter image description here

关于windows - 创建 QEmu guest 操作系统的 WinDbg 可读转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484192/

相关文章:

windows - 虚拟发送数据到com口

python - pandas 数据帧的准确内存使用估计

debugging - 创建内存.dmp 文件后是否可以调整大小?

postgresql - 带有插入但没有复制操作的postgres转储

angularjs - 如何在 Protractor 中配置 firefox 二进制位置?

windows - 如何以编程方式检查当前进程是否在 Windows 上具有长路径感知能力?

c++ - 以 headless 模式运行 WinDbg

.net - 如何下载正确版本的 mscordacwks 和 mscorwks?

创建动态总和直至 eof 时的核心转储

python - 在 Python 中,有没有办法保存/转储/序列化 PDB 调试 session ?