tandasat/MiniVisorPkg

GitHub: tandasat/MiniVisorPkg

一个面向 Intel 处理器的研究型 UEFI Hypervisor,支持在操作系统引导前加载并运行 Windows 或 Linux 系统。

Stars: 723 | Forks: 96

# MiniVisor [![Codacy Badge](https://api.codacy.com/project/badge/Grade/5781c969419c47059f1aba259443fe79)](https://www.codaly.com?utm_source=github.com&utm_medium=referral&utm_content=tandasat/MiniVisorPkg&utm_campaign=Badge_Grade) 这是一个为了教学目的,针对 Intel 处理器编写的 UEFI 和 Windows 驱动程序形式的研究型 Hypervisor。 这个 MiniVisor 作为 UEFI 驱动程序,提供了在操作系统引导之前检查系统活动的能力;而作为 Windows 驱动程序,则允许开发者使用熟悉的工具(如 WinDbg)对其进行调试。 ## 展示 * 从 UEFI shell 加载 hypervisor。 ![Readme_Showcase1.jpg](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f4ac9c13ec210342.jpg) * 记录引导活动并与客户机(guest)交互。 ![Readme_Showcase2.jpg](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/19a8d5db4c210344.jpg) * 在裸机上启动 Ubuntu。 ![Readme_Showcase3.jpg](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7a66bb64bc210345.jpg) ## 动机 本项目的目标是向社区和研究人员分享关于编写 UEFI hypervisor 的额外学习资源。 虽然有许多开源 hypervisor 的实现既小巧又易于学习,但其中支持作为 UEFI 驱动程序启动操作系统的仍然不多。 鉴于 UEFI 系统在 AMD64 生态系统中的普遍性,以及在裸机系统上监控、攻击和保护操作系统启动全过程的独特能力,作者认为理解并能够开发此类 hypervisor 对研究非常有价值。 ## 系统要求 通用要求: * 支持 Intel VT-x 和 EPT 的处理器 UEFI 驱动程序的要求: * 基于 UEFI 的系统 * 可启动 64 位 Windows 10、IoT Core 或 Ubuntu Windows 驱动程序的要求: * 64 位 Windows 10 测试请参阅 [构建与调试](Docs/Building_and_Debugging.md)。 ## 优势与用例 虽然本项目并未实现或设计任何即时可用的功能,但基于 UEFI 的 hypervisor 相比基于 Windows 驱动程序的方案具有多重优势,并能实现独特的功能。 * 无需禁用 Hyper-V (Virtualization Based Security) 即可运行自定义 hypervisor * 无需启用测试签名模式 * 从操作系统的角度来看,没有任何直接表明 hypervisor 存在的迹象 * 检测 Bootkit 和早期系统修改 * 实现与操作系统无关的解决方案 * 在早期引导阶段安装 Hook,并让 PatchGuard 保护它们 ![Readme_Showcase4.jpg](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/17044290e0210346.jpg) ## 致谢 作者感谢以下项目的创建者和维护者: * [Bareflank](https://github.com/Bareflank/hypervisor) 和 [STM](https://github.com/jyao1/STM) —— 发布了代码库相对较小的基于 UEFI 的 hypervisor。 * [zpp_hypervisor](https://github.com/eyalz800/zpp_hypervisor) —— 让我意识到编写基于 UEFI 的 hypervisor 是可行的。 * [EfiGuard](https://github.com/Mattiwatti/EfiGuard) —— 为 UEFI 开发新手提供了整洁的代码库和丰富的文档。 * [hvpp](https://github.com/wbenny/hvpp) —— 提供 UEFI 环境所需的一些技术。 * [ia32-doc](https://github.com/wbenny/ia32-doc) —— 使我免于手工定义数以千计的常量和结构体。
标签:DAST, DNS解析, EDK2, EPT, Hypervisor, Intel VT-x, Intel处理器, TGT, UEFI, UML, WinDbg, Windows驱动, x64架构, 云资产清单, 内核开发, 内核调试, 启动项, 固件安全, 子域名枚举, 客户端加密, 开源项目, 引导启动, 恶意软件分析, 操作系统, 攻防演练, 敏感操作监控, 教育项目, 系统安全, 系统底层, 网络安全监控, 虚拟化, 虚拟化安全, 虚拟机监控程序, 裸机监控, 计算机底层原理, 计算机科学, 逆向工程, 驱动开发