Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
matrix-rs — Rusty Hypervisor - 使用 Rust 编写的 Windows 内核 Blue Pill Type-2 虚拟机监控器(代号:Matrix) | Kitploit
工具/GitHubGitHub/memn0ps/matrix-rs
内存取证动态代码分析 (DAST)IDS/IPS规避逆向工程安全虚拟化学习与教育Archived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - 使用 Rust 编写的 Windows 内核 Blue Pill Type-2 虚拟机监控器(代号:Matrix)

查看仓库
3564283个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

基于 Rust 的 Windows 内核 Blue Pill Type-2 虚拟机监控器(代号:Matrix)

License Issues Forks Stars

博客:https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

一个轻量级、内存安全且极速的基于 Rust 的 Type-2 研究型虚拟机监控器,带有面向 Intel VT-x 的钩子,专注于研究虚拟化的核心概念。

注意: Illusion 虚拟机监控器(基于 Rust 的 Windows UEFI Blue Pill Type-1 虚拟机监控器)更加稳定、支持更多功能,并且整体设计更加出色。Matrix 虚拟机监控器(基于 Rust 的 Windows 内核 Blue Pill Type-2 虚拟机监控器)是一个较旧的实验性版本,不适用于生产环境。这两个项目都作为模板,帮助人们开始使用 Rust 进行虚拟机监控器开发。

EPT Hooks 图 0:扩展页表(EPT)钩子(Matrix)

功能特性

  • ✅ 扩展页表(EPT):支持内存类型范围寄存器(MTRR)。
  • ✅ VM 退出处理:处理 ExceptionOrNmi (#GP, #PF, #BP, #UD)、Cpuid、Getsec、Vmcall、Vmclear、Vmlaunch、Vmptrld、Vmptrst、Vmresume、Vmxon、Vmxoff、Rdmsr、Wrmsr、Invd、Rdtsc、EptViolation、EptMisconfiguration、Invept、Invvpid、Xsetbv。
  • ✅ 隐藏的内核内联钩子:兼容 PatchGuard 的断点(int3)钩子。
  • ✅ 隐藏的系统调用(Syscall)钩子:兼容 PatchGuard 的系统服务描述符表(SSDT)函数条目钩子。
  • ✅ 隔离与安全:自定义实现全局描述符表(GDT)、中断描述符表(IDT)和页表,以提高虚拟机监控器的安全性和隔离性。感谢 @namazso 提出的相关警示。

支持的硬件

  • ✅ 支持 VT-x 和扩展页表(EPT)的 Intel 处理器。
  • ❌ 支持 AMD-V(SVM)和嵌套页表(NPT)的 AMD 处理器。

支持的平台

  • ✅ Windows 10 - Windows 11,仅限 x64。

安装

  1. 从此处安装 Rust。
  2. 切换到 Rust Nightly:rustup toolchain install nightly 和 rustup default nightly。
  3. 安装 LLVM:winget install LLVM.LLVM。
  4. 安装工具:cargo install cargo-make cargo-expand cargo-edit cargo-workspaces。
  5. 安装 WDK/SDK/EWDK:步骤见此处。
  6. 如果 WDK 安装过程中未自动设置 WDKContentRoot 环境变量,请将其设置为指向你的 WDK 安装路径:
root@kitploit:~
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

构建项目

  • 开发版:cargo make --profile development。
  • 发布版:cargo make --profile release。

调试

启用调试模式

  • 测试模式:使用 bcdedit.exe /set testsigning on 激活测试签名。
  • Windows 调试:按照此 Microsoft 指南中的步骤操作。
root@kitploit:~
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

使用 Windbg 进行网络调试

设置:bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n。

调试输出筛选器

  1. 打开 regedit.exe。
  2. 转到 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager。
  3. 创建 Debug Print Filter,并将 DEFAULT DWORD 设置为 8。

VMware 串口调试

  1. 在 VMware 中添加串口:'Use output file'(使用输出文件)。
  2. 在 Windows 虚拟机中配置:$serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open()。

服务管理

使用服务控制器(sc.exe)来创建和管理虚拟机监控器服务:

root@kitploit:~
sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

使用方法

  1. 为 VMware Workstation 进行设置

    构建项目:按照前面章节提供的构建说明编译项目。

  2. 设置 VMware Workstation

    配置 VMware 串口用于调试。

VMware Serial Port Settings 图 1:VMware 串口设置

确保已启用 "Virtualize Intel VT-x/EPT or AMD-V/RVI"(虚拟化 Intel VT-x/EPT 或 AMD-V/RVI)以及 "Virtualize IOMMU (IO memory management unit)"(虚拟化 IOMMU(IO 内存管理单元))。

VMware Processors Settings 图 2:VMware 处理器设置

  1. 复制驱动程序

    将 matrix.sys 驱动程序复制到 C:\Windows\System32\drivers 目录。

  2. VMware 串口调试

    在“串口调试”章节中执行 PowerShell 脚本以打开串口。

  3. 加载虚拟机监控器

    使用“服务管理”章节中所示的 load.ps1 PowerShell 脚本来创建并启动虚拟机监控器服务。

Load Hypervisor 图 3:加载虚拟机监控器

PoC

Hypervisor PoC Setup 图 4:日志和 Windbg PoC 设置

Hypervisor PoC Execute 图 5:日志和 Windbg PoC 执行

致谢、参考资料和动机

衷心感谢那些塑造了这个项目的杰出人士和资源。特别感谢下面列出的所有人。虽然我并未在自己的工作中使用所有这些资源,但它们都是信息的金矿,对任何深入虚拟机监控器开发的人(包括我)都非常有帮助。

  • Daax (@daaximus):感谢他出色的免费虚拟机监控器开发系列教程,这是可用的最佳资源之一,其深入的研究和清晰的讲解极大地影响了我自己的工作。他对我问题的支持和解答,对于我入门虚拟机监控器开发来说价值无量:

    • 7 Days to Virtualization。
    • MMU Virtualization via Intel EPT。
  • Satoshi Tanda (@tandasat):Satoshi Tanda 的指导、项目和结构化的培训课程对我帮助极大。他在 GitHub 上详细的讲解和贡献显著加深了我的理解,在我整个学习历程中是一位出色的导师:

    • Hypervisor Development for Security Researchers。
    • Hypervisor 101 in Rust。
    • 其他项目:Hello-VT-rp、DdiMon、HyperPlatform、MiniVisorPkg。
  • Jess (@jessiep_):感谢他在该项目多个领域中提供的宝贵支持和合作,带来了关键的见解和专业知识,并快速回复我的问题。

  • Drew (@drew):感谢他在虚拟机监控器开发的各个方面给予的帮助、指导和对问题的快速回复。

  • Sina Karvandi (@Intel80x86):感谢他详细的免费 Hypervisor From Scratch 系列教程:

    • 教程系列。
    • GitHub 仓库。
  • Matthias (@not-matthias):感谢他在 amd_hypervisor 项目上的出色工作,这极大地启发并影响了本研究。

  • Nick Peterson (@everdox) 和 Aidan Khoury (@ajkhoury):感谢他们对虚拟机监控器自省和系统调用钩子的深刻探索:

社区与技术资源

  • Secret Club:关于反作弊系统和虚拟机监控器检测的见解,也同样启发了这个项目:

    • System emulation detection,作者: @Daax、@iPower、@ajkhoury、@drew。
    • BattlEye hypervisor detection,作者:@vmcall、@Daax。
  • 其他必备资源:

    • Intel's Software Developer's Manual。
    • Maurice Heumann's (@momo5502) Detecting Hypervisor-Assisted Hooking。
    • Guided Hacking's x64 Virtual Address Translation(YouTube 视频)。
    • UnKnoWnCheaTs 论坛帖子,作者:@namazso。
    • RVM1.5、Barbervisor、rustyvisor、orange_slice、mythril、uhyve、maystorm。
    • AMD-V Hypervisor Development by Back Engineering、bluepill by @_xeroxz。

协助者与协作者

特别感谢:

  • Daax。
  • Satoshi Tanda (@tandasat)。
  • Drew (@drew)。
  • iPower (@iPower)。
  • Namazso (@namazso)。
  • Jess (@jessiep_)。
  • Matthias @not-matthias。
  • @felix-rs / @joshuа。
  • Ryan McCrystal / @rmccrystal。
  • Jim Colerick (@vmprotect)。

许可证

本项目基于 MIT 许可证授权。更多信息,请参阅 MIT 许可证详情。

下载工具
  • Patchguard: Hypervisor Based Introspection [P1]。
  • Patchguard: Hypervisor Based Introspection [P2]。
  • Syscall Hooking Via Extended Feature Enable Register (EFER)。
  • hvpp by @wbenny。
  • HyperHide by @Air14。
  • How AetherVisor works under the hood by M3ll0wN1ght。
  • Rust library to use x86 (amd64) specific functionality and registers (x86 crate for Rust)。
  • DarthTon's HyperBone(基于传奇般的 Alex Ionescu's 版本),发布在 UnknownCheats 上。
  • Joanna Rutkowska:开创 Blue Pill 虚拟机监控器概念的先驱,最早的 PoC 之一。