All Projects → tandasat → Hyperplatform

tandasat / Hyperplatform

Licence: mit
Intel VT-x based hypervisor aiming to provide a thin VM-exit filtering platform on Windows.

Projects that are alternatives of or similar to Hyperplatform

Simplesvm
A minimalistic educational hypervisor for Windows on AMD processors.
Stars: ✭ 152 (-83.57%)
Mutual labels:  driver, virtual-machine, hypervisor
Simplesvmhook
SimpleSvmHook is a research purpose hypervisor for Windows on AMD processors.
Stars: ✭ 159 (-82.81%)
Mutual labels:  driver, virtual-machine, hypervisor
Kvm Vmi
KVM-based Virtual Machine Introspection
Stars: ✭ 153 (-83.46%)
Mutual labels:  virtual-machine, hypervisor
Awesome Virtualization
Collection of resources about Virtualization
Stars: ✭ 846 (-8.54%)
Mutual labels:  virtual-machine, hypervisor
Vsock
Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.
Stars: ✭ 181 (-80.43%)
Mutual labels:  virtual-machine, hypervisor
Invtero.net
inVtero.net: A high speed (Gbps) Forensics, Memory integrity & assurance. Includes offensive & defensive memory capabilities. Find/Extract processes, hypervisors (including nested) in memory dumps using microarchitechture independent Virtual Machiene Introspection techniques
Stars: ✭ 237 (-74.38%)
Mutual labels:  virtual-machine, hypervisor
RVM
Rcore Virtual Machine
Stars: ✭ 59 (-93.62%)
Mutual labels:  virtual-machine, hypervisor
Hdk
(unofficial) Hyper-V® Development Kit
Stars: ✭ 166 (-82.05%)
Mutual labels:  virtual-machine, hypervisor
uvmm
Virtual machine monitor for L4Re
Stars: ✭ 22 (-97.62%)
Mutual labels:  virtual-machine, hypervisor
wiser
🐎 Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.
Stars: ✭ 249 (-73.08%)
Mutual labels:  virtual-machine, hypervisor
Microverse
macOS virtualization app for M1/Apple Silicon
Stars: ✭ 71 (-92.32%)
Mutual labels:  virtual-machine, hypervisor
Adldap2 Laravel
LDAP Authentication & Management for Laravel
Stars: ✭ 825 (-10.81%)
Mutual labels:  driver
Hidden
Windows driver with usermode interface which can hide objects of file-system and registry, protect processes and etc
Stars: ✭ 768 (-16.97%)
Mutual labels:  driver
Cuprite
Headless Chrome/Chromium driver for Capybara
Stars: ✭ 743 (-19.68%)
Mutual labels:  driver
Vigembus
Windows kernel-mode driver emulating well-known USB game controllers.
Stars: ✭ 721 (-22.05%)
Mutual labels:  driver
Malboxes
Builds malware analysis Windows VMs so that you don't have to.
Stars: ✭ 900 (-2.7%)
Mutual labels:  virtual-machine
Reactivemongo
🍃 Non-blocking, Reactive MongoDB Driver for Scala
Stars: ✭ 825 (-10.81%)
Mutual labels:  driver
Arm now
arm_now is a qemu powered tool that allows instant setup of virtual machines on arm cpu, mips, powerpc, nios2, x86 and more, for reverse, exploit, fuzzing and programming purpose.
Stars: ✭ 719 (-22.27%)
Mutual labels:  virtual-machine
Vm
💻☁📦 The (official) Nextcloud VM (virtual machine appliance), Home/SME Server and scripts for RPi (4).
Stars: ✭ 716 (-22.59%)
Mutual labels:  hypervisor
Ring
Innovative and practical general-purpose multi-paradigm language
Stars: ✭ 716 (-22.59%)
Mutual labels:  virtual-machine

HyperPlatform

Introduction

HyperPlatform is an Intel VT-x based hypervisor (a.k.a. virtual machine monitor) aiming to provide a thin platform for research on Windows. HyperPlatform is capable of monitoring a wide range of events, including but not limited to, access to virtual/physical memory and system registers, occurrences of interrupts and execution of certain instructions.

Researchers are free to selectively enable and/or disable any of those event monitoring and implement their own logic on the top of HyperPlatform. Some potential applications are:

  • Analyzing kernel mode rootkit
  • Implementing virtual-machine-based intrusion prevention system (VIPS)
  • Reverse-engineering the Windows kernel

A simplified implementation of those ideas are available:

Advantages

HyperPlatform is designed to be easy to read and extend by researchers, especially those who are familiar with Windows. For instance:

  • HyperPlatform runs on Windows 7, 8.1 and 10 in both 32 and 64 bit architectures without any special configuration (except for enabling Intel-VT technology).
  • HyperPlatform compiles in Visual Studio and can be debugged though Windbg just like a regular software driver.
  • Source code of HyperPlatform is written and formatted in existing styles (Google C++ Style Guide and clang-format), and well commented.
  • HyperPlatform has no dependencies, supports use of STL and is released under a relaxed license.

For more details, see the HyperPlatform User Document and Programmer's Reference.

Build

To build HyperPlatform, the following are required.

Installation and Uninstallation

Clone full source code from Github with a below command and compile it on Visual Studio.

$ git clone --recursive https://github.com/tandasat/HyperPlatform.git

On the x64 platform, you have to enable test signing to install the driver. To do that, open the command prompt with the administrator privilege and type the following command, and then restart the system to activate the change:

>bcdedit /set testsigning on

To install and uninstall the driver, use the 'sc' command. For installation:

>sc create HyperPlatform type= kernel binPath= C:\Users\user\Desktop\HyperPlatform.sys
>sc start HyperPlatform

Note that the system must support the Intel VT-x and EPT technology to successfully install the driver. On Windows 10 RS4+ systems, this technology can automatically be disabled by the Windows kernel which results in the following error.

>sc start HyperPlatform
[SC] StartService FAILED 3224698910:

A hypervisor feature is not available to the user.

This is due to Windows Defender Credential Guard being enabled by default. To disable Windows Defender Credential Guard and enable the virtualization technology for HyperPlatform, follow this instruction.

For uninstallation:

>sc stop HyperPlatform
>sc delete HyperPlatform
>bcdedit /deletevalue testsigning

To install the driver on a virtual machine on VMware Workstation, see an "Using VMware Workstation" section in the HyperPlatform User Document.

Output

All logs are printed out to DbgView and saved in C:\Windows\HyperPlatform.log.

Supported Platforms

  • x86 and x64 Windows 7, 8.1 and 10
  • The system must support the Intel VT-x and EPT technology

Related Project(s)

SimpleVisor is a very (very) simple and readable Windows-specific hypervisor. I recommend taking a look at the project to learn VT-x if you are new to hypervisor development. It should give you a clearer view of how a hypervisor is initialized and executed.

  • hvpp

  • https://github.com/wbenny/hvpp hvpp is a lightweight Intel x64/VT-x hypervisor written in C++. This is about the same size as HyperPlatform in LOC yet written in a more polished matter with focus on x64, making the entire code base more readable. This project also addresses some issues remain unresolved in HyperPlatform and comes with educational comments and demonstration code to learn VT-x in more depth. Unless you are allergic to C++ or looking for x86 support, I strongly encourage you to study this project too.

  • ksm

  • https://github.com/asamy/ksm

ksm is lightweight-ish x64 hypervisor written in C for Windows for Intel processors. It demonstrates some advanced VT-x features like #VE and VMFUNC where HyperPlatform does not include.

Bareflank Hypervisor is an actively developed open source hypervisor. It comes with rich documents, tests, and comments, supports multiple platforms. The size of code is larger than that of HyperPlatform, but you will find it interesting if you are looking for more comprehensive yet still lightweight-ish hypervisors.

License

This software is released under the MIT License, see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].