对 qemu guest 的实时 RAM 访问

问题描述 投票:0回答:1

为了学习的目的,我想以实时模式完全访问客户QEMU的物理内存。 “pmemsave”命令冻结来宾操作系统。有没有办法让我以某种方式将物理内存映射到 Linux 分区,以便以实时模式进行访问?

我尝试使用 pmemsave,但它冻结了,我想要实时访问

qemu
1个回答
0
投票

嗯,这会转储 qemu-monitor 中的内存,而不是在硬盘上创建文件。

xp /fmt addr

xp
物理内存转储从 addr 开始。

fmt
是一种格式,告诉命令如何格式化数据。

其语法为:

/{count}{format}{size}

count
是要倾倒的物品数量。

format
可以是 x(十六进制)、d(有符号十进制)、u(无符号十进制)、o(八进制)、c(字符)或 i(asm 指令)。

size
可以是 b(8 位)、h(16 位)、w(32 位)或 g(64 位)。在 x86 上,可以使用 i 格式指定 h 或 w 来分别选择 16 位或 32 位代码指令大小。


示例:

在当前指令指针处转储10条指令:

(qemu) x/10i $eip

0x90107063:返回
0x90107064:sti
0x90107065: lea 0x0(%esi,1),%esi
0x90107069: lea 0x0(%edi,1),%edi
0x90107070:ret
0x90107071:跳转0x90107080
0x90107073:没有
0x90107074:没有
0x90107075:没有
0x90107076:没有


如果应用程序冻结,可以尝试较小的块。这会转储 1 MB...

pmemsave 0x000 1048576 file.dmp

© www.soinside.com 2019 - 2024. All rights reserved.