mbox series

[v3,0/2] plugins: add plugin API to read guest memory

Message ID 20240827215329.248434-1-rowanbhart@gmail.com (mailing list archive)
Headers show
Series plugins: add plugin API to read guest memory | expand

Message

Rowan Hart Aug. 27, 2024, 9:53 p.m. UTC
This patch adds one API function to the QEMU plugin API

bool qemu_plugin_read_memory_vaddr(vaddr, GByteArray *, size_t);

The API allows reading memory from an arbitrary guest virtual
address, which is useful for many things but the motivating examples
are:

* Virtual Machine Introspection (VMI)
* Accurate and easier execution trace extraction
* Debugging and logging tools

An example of its use is added to the existing syscalls plugin,
which now has an option to hexdump the buf argument to any write(2)
syscalls which occur.

For v3, fixed a missing '*' in a comment which caused a doc build issue.

Rowan Hart (2):
  plugins: add plugin API to read guest memory
  plugins: add option to dump write argument to syscall plugin

 docs/about/emulation.rst     |  14 ++++-
 include/qemu/qemu-plugin.h   |  32 +++++++++-
 plugins/api.c                |  20 ++++++
 plugins/qemu-plugins.symbols |   1 +
 tests/tcg/plugins/syscall.c  | 117 +++++++++++++++++++++++++++++++++++
 5 files changed, 182 insertions(+), 2 deletions(-)

Comments

Alex Bennée Sept. 5, 2024, 3:27 p.m. UTC | #1
Rowan Hart <rowanbhart@gmail.com> writes:

> This patch adds one API function to the QEMU plugin API
>
> bool qemu_plugin_read_memory_vaddr(vaddr, GByteArray *, size_t);
>
> The API allows reading memory from an arbitrary guest virtual
> address, which is useful for many things but the motivating examples
> are:

Queued to plugins/next with a minor tweak to the cpu_memory_rw_debug
call.