Qemu 从主机应用程序读取访客内存

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

我有一个主机应用程序需要访问qemu物理地址。对于 RAM 内存区域。 我无法找出正确的方法来做到这一点。如有任何帮助,我们将不胜感激。

我目前正在考虑向 QEMU 事件循环添加一个套接字服务器来执行此操作。但我找不到这方面的文档...

qemu
2个回答
0
投票

您可以在启用 gdb 服务器(-s)的情况下运行 qemu,连接到 gdb 服务器(TCP 端口 1234)并向其发送内存读取命令。


0
投票

您可以利用 QEMU 中的

static inline void cpu_physical_memory_read(hwaddr addr,void *buf, hwaddr len)
功能从 guest RAM 读取数据。该函数旨在从物理内存中读取,使其适合您的场景。

以下是如何使用它的基本示例:

hwaddr guest_address = 0x12345678;  // Replace with the actual guest address
size_t read_size = 100;  // Replace with the actual size you want to read

// Allocate a buffer to store the read data
uint8_t read_buffer[read_size];

cpu_physical_memory_read(guest_addr, buffer, size);

printf("Read data from guest RAM: ");
for (size_t i = 0; i < 10; ++i) 
    printf("%02X ", read_buffer[i]);
© www.soinside.com 2019 - 2024. All rights reserved.