SamuelTulach / memhv

Minimalistic AMD-V/SVM hypervisor with memory introspection capabilities
MIT License
181 stars 27 forks source link

memhv

Minimalistic hypervisor with memory introspection capabilities

About

This project has a single goal: to be as minimal as possible while providing a hypercall API for reading/writing an address space of any (protected) process. It is a standalone Microsoft Windows kernel-mode driver that can be loaded either normally or through manual mapping.

screenshot

Support

Usage

  1. Ensure that you have SVM enabled in UEFI firmware options (BIOS)
  2. Make sure Microsoft Hyper-V is fully disabled
  3. Use manual mapper to load the kernel mode driver (kdmapper, KDU)
  4. Enjoy hypercall API (see client folder)

Detection vectors

Common timing attacks are ineffective against this hypervisor, as it does not exit on CPUID or similar instructions typically used in such attacks. When manually mapping, code will be in a memory region which is not associated with any legitimate module, having all the usual vectors. However, this can be easily mitigated by adjusting the NPT to completely hide the hypervisor memory from the guest (this is not implemented in this project, you have to do it yourself).

At the time of release, no popular anti-cheat has issues with this hypervisor running.

FAQ

Credits