intel / kernel-fuzzer-for-xen-project

Kernel Fuzzer for Xen Project (KF/x) - Hypervisor-based fuzzing using Xen VM forking, VMI & AFL
MIT License
466 stars 79 forks source link

Add tool to save VM state for transplantation via LibVMI #52

Closed tklengyel closed 3 years ago

tklengyel commented 3 years ago

/cc @v-p-b

You have to provide an initial memory map of the target VM that you will be saving for transplantation. The format of the initial memory map is:

<placeholder> <phys mem start> <size>

For example:

mem 0x0000000000000000 0x000000000009fbff
mem 0x0000000000100000 0x0000000015EFEFFF

You can get the memory map of a VM by booting Linux in it and checking the dmesg buffer. See https://github.com/libvmi/libvmi/blob/master/notes/memory_map.txt for more details. Saving only the RAM regions is needed.

The state saved via save-transplant can be loaded up on any Xen host via xen-transplant.

Fixes #21