有没有办法故意破坏 qemu 中的来宾内存,从而故意对系统造成严重破坏?到目前为止,就像从 Linux 主机损坏 Windows 来宾一样,我尝试使用定制软件来修改 qemu 的内存,但在进入 qemu 使用的内存后效果不佳,导致出现段错误。
答案1
在 Linux 上,GUI 工具gameconqueror
沿着它的后端scanmem
正在做真正的工作可以为此提供帮助(上游来源https://github.com/scanmem/scanmem)。 QEMU 映射所有 VM 内存,因此 ptracing QEMU 允许更改此类内存。
我测试了一个简单的情况:在 Linux VM 中运行的 bash shell 中定义一个带有长字符串的变量,搜索附加gameconqueror
到 QEMU 进程的该字符串并修改所有出现的情况(其中只有一个是真正的变量:其他可能是在内存中找到该字符串的各个临时位置,但保持相同的长度,然后读回变量以查看值是否已更改。
现在关于避免废弃 QEMU 本身,gameconqueror
可能没有直接的功能,但可以做的是找出 VM 的映射内存是什么。
对于我之前的示例,VM 有 1GB 和 QEMU 的流程图(可在 中找到/proc/<pid>/maps
,请参阅proc(5)
) 有一个范围恰好为 1GB:
7f5597e00000-7f55d7e00000 rw-p 00000000 00:00 0
当然,点击率也在这个范围内。
所以首先寻找一个rw-p
(或者至少是烫发从rw-
) 开始,首先查看 VM 大小的范围,这/proc/<pid>/maps
应该有助于首先找出正确的区域,并仅在正确的区域中选择命中:这应该会影响 VM,但不再影响 QEMU。