Skip to content

libvmi: libmicrovmi replaces the hypervisor access layer (explicit access method) #317

Open

Description

@Wenzel

Parent

#312

What to build

In the Wenzel/libvmi fork: fast-forward master to upstream libvmi/libvmi master, and rebuild the libmicrovmi branch as a fresh commit series on it (old history discarded, force-pushed). libmicrovmi replaces the native Xen, KVM, file and bareflank drivers. Keep the old branch's wiring: memory cache, IDTR/GDTR register mapping, Xen/KVM LibVMI mode mapping, KVMI socket init data. Add a VMI_VIRTUALBOX LibVMI mode and init data selecting the VirtualBox access method (MachineDebugger or VBoxVMI) and the VBoxVMI socket path, mapped one-to-one onto libmicrovmi's C init params. Physical reads, pause/resume, vCPU registers, max physical address go through libmicrovmi; the event API returns VMI_FAILURE. Build against a system install of libmicrovmi dev (virtualbox feature). CI builds libmicrovmi dev at a pinned commit, then LibVMI and examples (build only).

Acceptance criteria

  • Fork master equals upstream master; libmicrovmi branch is a short fresh series on it
  • All upstream vmi_mode values kept; file and bareflank fail at init as unsupported; memflow Driver maps to a memflow LibVMI mode
  • vmi_get_access_mode reports VMI_VIRTUALBOX for a VirtualBox VM
  • pause-example and map-paddr work over explicit MachineDebugger and explicit VBoxVMI
  • Event registration returns VMI_FAILURE
  • CI green on the force-pushed branch

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions