MCPcopy Create free account
hub / github.com/SamuelTulach/memhv

github.com/SamuelTulach/memhv @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
115 symbols 141 edges 20 files 0 documented · 0% updated 16mo ago★ 4266 open issues

Browse by type

Functions 70 Types & classes 45
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img width="100px" height="auto" src="https://github.com/SamuelTulach/memhv/raw/main/assets/chip-icon.png" />
<h3 align="center">memhv</h3>

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

  • Windows 10 or Windows 11 (both 64-bit, tested on 22H2 and 24H2)
  • AMD processor with SVM and NPT support

Usage

  1. Ensure that you have SVM enabled in UEFI firmware options (BIOS)
  2. Make sure Microsoft Hyper-V is fully disabled
  3. Sign and load the driver or use other means to load it (kdmapper, KDU, make sure PE headers are not erased if you want the hypervisor to use NPT to hide its memory from guest)
  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. Memory of the hypervisor is hidden from the guest using NPT.

Credits

Core symbols most depended-on inside this repo

Shape

Method 44
Class 37
Function 26
Enum 8

Languages

C++100%

Modules by API surface

memhv/memhv/Source/Memory/Physical.h16 symbols
memhv/memhv/Source/Utils.cpp15 symbols
client/client/Library/memhv.h15 symbols
memhv/memhv/Source/Memory/Physical.cpp14 symbols
memhv/memhv/Source/SVM/SVM.cpp9 symbols
memhv/memhv/Source/SVM/Defines/SVM_ProcessorData.h9 symbols
memhv/memhv/Source/SVM/Handlers/SVM_HandleVMCall.cpp7 symbols
client/client/Source/Entry.cpp5 symbols
memhv/memhv/Source/Utils.h4 symbols
memhv/memhv/Source/SVM/Defines/SVM_NestedPaging.h4 symbols
memhv/memhv/Source/Shared.h3 symbols
memhv/memhv/Source/SVM/Handlers/SVM_VMExit.cpp3 symbols

For agents

$ claude mcp add memhv \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page