Idov31/NovaHypervisor
GitHub: Idov31/NovaHypervisor
基于 Intel VT-x 的 Windows 防御型虚拟化监控器,通过硬件虚拟化层保护内核内存免受 BYOVD 等内核级攻击。
Stars: 260 | Forks: 26
# NovaHypervisor
REM Remove an address from protection
NovaClient.exe unprotect 0x12345678
```
- protect:保护内存地址不被访问,您可以指定保护的类型:
- `r`:读取保护
- `w`:写入保护
- `x`:执行保护
您提供的保护就是该地址将**拥有**的保护。例如,如果您想移除执行权限,请使用 "rw"。
- unprotect:移除对内存地址的保护。
## 设置
### 编译项目
编译项目的设置要求您具备:
- Visual Studio 2022 或更高版本。
- 已安装 Windows Driver Kit (WDK)。
### 目标设置
要运行该 hypervisor,您的机器上需要安装 Windows 10 或更高版本。您还需要具备:
- 启用 Intel VT-x。
- 虚拟化 IOMMU。
## 日志记录与调试
### 日志记录
NovaHypervisor 使用一个小型 COM 记录器记录到第二个串行端口(COM2,I/O 端口 `0x2F8`),该记录器可以在 `HIGH_LEVEL` IRQL 和 VMX root 路径下运行。它会发出带有固定 `NovaHypervisor` 前缀的调试、信息和错误记录。
```
bcdedit /dbgsettings serial debugport:2 baudrate:115200
```
从宿主机端的串行管道或您 VM 配置的 COM2 端点以 `115200 8N1` 捕获输出。例如,在 PuTTY 中,您可以附加到为 VM 配置的串行传输,并在驱动程序运行时观察日志行。您也可以使用 [connect-vm.ps1](./scripts/connect-vm.ps1) 脚本连接到 VM 的 COM2 端口并在控制台中显示日志。
### 调试
要在您的测试环境中进行测试和调试,请使用提升的 cmd 运行以下命令,然后重启您的机器:
```
bcdedit /set testsigning on
bcdedit /debug on
bcdedit /dbgsettings net hostip: port:55000 key:1.2.3.4
```
其中 `` 是您宿主机的 IP 地址。
## 资源
- [Hypervisor From Scratch](https://rayanfam.com/topics/hypervisor-from-scratch-part-1/)
- [HyperDbg](https://github.com/HyperDbg/HyperDbg)
- [QEMU](https://www.qemu.org/)
- [TLFS](https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/tlfs/Hypervisor%20Top%20Level%20Functional%20Specification%20v5.0.pdf)
## 特别感谢与贡献者
- [Sinaei](https://x.com/Intel80x86):感谢他解答我的问题,以及他在 HyperDbg 和 Hypervisor From Scratch 上的出色工作。
- [Humza](https://github.com/humzak711):感谢他帮助修复错误并提出改进建议。
- [memN0ps](https://github.com/memN0ps/):感谢他解答我的问题并为我指引正确的资源。
标签:BYOVD攻击防御, C++, EDR保护, Hyper-V, Intel x64 Hypervisor, Rootkit防御, VBS, VMware, Web报告查看器, Windows 10, Windows虚拟机监控程序, 内存保护, 内存隔离, 内核安全防御, 内核级保护, 内核驱动, 子域名枚举, 安全引擎, 安全攻防, 快速连接, 数据擦除, 汇编语言, 端点安全, 系统安全, 网络协议, 网络安全, 自动回退, 虚拟化安全, 补丁管理, 防病毒软件保护, 隐私保护