All Projects → tandasat → Minivisorpkg

tandasat / Minivisorpkg

Licence: mit
The research UEFI hypervisor that supports booting an operating system.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Minivisorpkg

S6 pcie microblaze
PCI Express DIY hacking toolkit for Xilinx SP605
Stars: ✭ 301 (+2.38%)
Mutual labels:  uefi, kernel, hypervisor
Hdk
(unofficial) Hyper-V® Development Kit
Stars: ✭ 166 (-43.54%)
Mutual labels:  kernel, hypervisor
Build
Armbian Linux build framework
Stars: ✭ 1,827 (+521.43%)
Mutual labels:  kernel, uefi
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (-61.9%)
Mutual labels:  uefi, kernel
Ksm
A fast, hackable and simple x64 VT-x hypervisor for Windows and Linux. Builtin userspace sandbox and introspection engine.
Stars: ✭ 673 (+128.91%)
Mutual labels:  kernel, hypervisor
Svm kernel
x86_64 AMD kernel optimized for performance & hypervisor usage
Stars: ✭ 32 (-89.12%)
Mutual labels:  kernel, hypervisor
Shadow Box For X86
Shadow-Box: Lightweight and Practical Kernel Protector for x86 (Presented at BlackHat Asia 2017/2018, beVX 2018 and HITBSecConf 2017)
Stars: ✭ 178 (-39.46%)
Mutual labels:  kernel, hypervisor
gokvm
KVM based tiny x86 hypervisor written in pure golang, which can boot Linux
Stars: ✭ 82 (-72.11%)
Mutual labels:  kernel, hypervisor
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-87.07%)
Mutual labels:  kernel, uefi
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-84.01%)
Mutual labels:  kernel, uefi
Frakti
The hypervisor-based container runtime for Kubernetes.
Stars: ✭ 630 (+114.29%)
Mutual labels:  kernel, hypervisor
clr-boot-manager
Kernel & Boot Loader Management
Stars: ✭ 101 (-65.65%)
Mutual labels:  kernel, uefi
Learn Kvm
Qemu KVM(Kernel Virtual Machine)学习笔记
Stars: ✭ 305 (+3.74%)
Mutual labels:  kernel, hypervisor
Diosix
A lightweight, secure, multiprocessor bare-metal hypervisor written in Rust for RISC-V
Stars: ✭ 116 (-60.54%)
Mutual labels:  kernel, hypervisor
Noirvisor
Hardware-Accelerated Hypervisor solution for complex functions and purposes.
Stars: ✭ 186 (-36.73%)
Mutual labels:  uefi, hypervisor
wiser
🐎 Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.
Stars: ✭ 249 (-15.31%)
Mutual labels:  kernel, hypervisor
systemboot
SystemBoot is a LinuxBoot distribution that works as a system firmware + bootloader, based on u-root
Stars: ✭ 103 (-64.97%)
Mutual labels:  kernel, uefi
Il2c
IL2C - A translator for ECMA-335 CIL/MSIL to C language.
Stars: ✭ 270 (-8.16%)
Mutual labels:  uefi
Os kernel lab
OS kernel labs based on Rust/C Lang & RISC-V 64/X86-32
Stars: ✭ 3,332 (+1033.33%)
Mutual labels:  kernel
Gophernotes
The Go kernel for Jupyter notebooks and nteract.
Stars: ✭ 3,100 (+954.42%)
Mutual labels:  kernel

MiniVisor

Codacy Badge

This is a research hypervisor written as a UEFI and Windows driver for the educational purpose for Intel processors.

This MiniVisor, as a UEFI driver, provides the ability to inspect system activities even before the operating system boots, while as a Windows driver, allows developers to debug it with familiar tools like WinDbg.

Showcase

  • Loading the hypervisor from the UEFI shell. Readme_Showcase1.jpg

  • Logging boot activities and interacting with the guest. Readme_Showcase2.jpg

  • Booting Ubuntu on a bare-metal. Readme_Showcase3.jpg

Motivation

The goal of this project is to share an additional learning resource for writing UEFI hypervisors with the community and researchers.

There are numerous open source hypervisors with small and easy-to-study implementations, but those that support booting operating systems as UEFI drivers are still not many.

Given the universality of UEFI systems on the AMD64 ecosystem and the unique ability to monitor, attack and protect the system throughout operating system startup on bare-metal systems, the authors believe that having the understanding and being able to develop this type of hypervisors are valuable for research.

System Requirements

Common Requirements:

  • Intel VT-x and EPT supported processors

Requirements for the UEFI driver:

  • UEFI-based system
  • 64bit Windows 10, IoT Core, or Ubuntu to boot

Requirements for the Windows driver:

  • 64bit Windows 7 and 10

See Building and Debugging for testing.

Advantages and Use Cases

While this project does not implement or designed for any immediately useful features, UEFI-based hypervisors have multiple advantages over Windows driver-based ones and can implement unique features.

  • No need of disabling Hyper-V (Virtualization Based Security) to run the custom hypervisor
  • No need of enabling the test-signing mode
  • Zero direct indicator of existence of the hypervisor from operating system perspective
  • Detecting bootkit and early system modification
  • Implementing operating system agnostic solutions
  • Installing hooks during the early boot phase and letting PatchGuard to protect them Readme_Showcase4.jpg

Acknowledgments

The authors thank for creators and maintainers of the following projects:

  • Bareflank and STM -- for publishing UEFI-base hypervisors with the relatively small codebase.
  • zpp_hypervisor -- for making me realize that writing UEFI-based hypervisors is viable.
  • EfiGuard -- for clean codebase and rich documentation for UEFI development newbies.
  • hvpp -- for few techniques required for the UEFI environment.
  • ia32-doc -- for saving me from defining thousands of constants and structures by hand.
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].