
HyperDbg v0.22
最先进的原生调试工具
HyperDbg 调试器

HyperDbg 调试器 是一个开源、基于虚拟机监控器(hypervisor)辅助的调试器,适用于 Windows(Linux 支持目前正在开发中!),支持用户模式和内核模式(原生)调试。它专为逆向工程、模糊测试以及利用现代硬件虚拟化和跟踪特性进行高级系统分析而构建。
您可以在 Twitter 或 Mastodon 上关注 HyperDbg,以获取新版本发布通知,也可以加入任意 HyperDbg 群组,在群组中向开发者和开源逆向爱好者寻求有关 HyperDbg 安装与使用的帮助。
描述
HyperDbg 围绕现代硬件虚拟化技术构建,引入了超越传统调试器的能力。它通过使用 Intel VT-x 和扩展页表(EPT)虚拟化一个已运行的系统,从而运行在操作系统之上。通过将虚拟化与 Intel Processor Trace(Intel PT)等高级跟踪技术相结合,HyperDbg 提供了强大的跟踪和虚拟机监视(VMI)能力。
核心功能
HyperDbg 提供了一系列高级调试功能,包括多种类型的基于 EPT 的隐藏钩子。它可以模拟硬件数据断点,用于在特定地址范围内监视内存读取、写入和执行,同时对操作系统和目标应用程序保持透明。与硬件调试寄存器不同,这些监视功能不受可用调试寄存器数量或大小限制的约束。此外,HyperDbg 能够跨不同特权级别跟踪执行,包括从用户模式到内核模式的转换(例如通过系统调用、Heaven's Gate、故障、异常和中断),从内核到设备驱动程序,以及从内核模式返回用户模式,从而能够对整个执行流程进行全面分析。
此外,HyperDbg 支持系统调用挂钩、通过硬件跟踪功能实现控制流跟踪,以及对 I/O 操作的全面监控,包括内存映射 I/O(MMIO)和端口映射 I/O(PMIO),从而能够详细分析设备交互和外部外设。
除此之外,HyperDbg 还包含大量专为逆向工程、恶意软件分析和底层程序分析设计的附加事件。有关受支持事件的完整列表及其文档,请参阅完整功能列表。
HyperDbg 的设计目标是尽可能隐蔽地运行。它不使用任何调试 API 来调试操作系统或任何应用程序,因此经典的反调试方法无法检测到它。它还包含一个专门模块,旨在增强其隐蔽能力。该模块监控检测虚拟机监控器或调试器存在的尝试,并应用多种技术先报告、再缓解或绕过此类检测机制。尽管无法在所有场景下保证完全透明,但这些功能显著提高了检测 HyperDbg 的难度,使应用程序、加壳器、软件保护器、恶意软件、反作弊系统和其他安全机制更难识别其存在。
为什么选择 HyperDbg?
与传统调试器相比,HyperDbg 的安装和使用更加困难,并且需要更深入的底层系统知识。然而,它提供了两大优势:
-
完整的系统与操作系统控制
HyperDbg 运行在虚拟机监控器层面,为您提供经典调试器无法实现的强大能力。这使您能够利用硬件辅助的功能来处理高级逆向工程和调试场景。 -
隐蔽性与抗检测能力
由于 HyperDbg 不依赖标准操作系统调试 API,因此通常很难被检测到(尽管并非不可能)。这使得它在对抗反调试保护时是一个强有力的选择。
这些优势开辟了全新的调试和逆向工程技术,超越了传统调试器所能提供的范围。
构建与安装
您可以从 releases 下载最新的已编译二进制文件;否则,如果您想自行构建 HyperDbg,应使用 --recursive 标志克隆 HyperDbg。```
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
请访问 **[构建与安装](https://docs.hyperdbg.org/getting-started/build-and-install)** 和 **[快速开始](https://docs.hyperdbg.org/getting-started/quick-start)** 以获取关于如何开始使用 **HyperDbg** 的详细说明。你还可以查看 **[FAQ](https://docs.hyperdbg.org/getting-started/faq)** 以获取更多信息,或者,如果你之前使用过其他原生调试器(如 GDB、LLDB 或 WinDbg),可以查看[命令映射表](https://hyperdbg.github.io/commands-map)。
## 教程
**OpenSecurityTraining2 的 "Reversing with HyperDbg (Dbg3301)**" 教程系列可在 [**OST2 的网站**](https://ost2.fyi/Dbg3301)(_推荐_)和 [**YouTube**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY) 上获取,是开始学习和掌握 HyperDbg 的推荐方式。它会引导你完成使用 HyperDbg 的初始步骤,涵盖基本概念、原理和调试功能,并提供实际示例以及许多 HyperDbg 独有的逆向工程方法。
如果你有兴趣了解虚拟机管理程序和 HyperDbg 的内部设计与架构,可以阅读 [**Hypervisor From Scratch**](https://rayanfam.com/tutorials) 系列教程。
## 出版物
如果你在工作中使用了 **HyperDbg** 的某个组件,请考虑引用我们的论文。
**1. [HyperDbg: Reinventing Hardware-Assisted Debugging (CCS'22)](https://dl.acm.org/doi/abs/10.1145/3548606.3560649)** [[arXiv](https://arxiv.org/abs/2207.05676)]```
@inproceedings{karvandi2022hyperdbg,
title={HyperDbg: Reinventing Hardware-Assisted Debugging},
author={Karvandi, Mohammad Sina and Gholamrezaei, MohammadHosein and Khalaj Monfared, Saleh and Meghdadizanjani, Soroush and Abbassi, Behrooz and Amini, Ali and Mortazavi, Reza and Gorgin, Saeid and Rahmati, Dara and Schwarz, Michael},
booktitle={Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},
pages={1709--1723},
year={2022}
}
其他基于 HyperDbg 构建的论文...
2. hwdbg:像调试软件一样调试硬件 (EuroSec'25) [PDF]``` @inproceedings{karvandi2025hwdbg, title={hwdbg: Debugging Hardware Like Software}, author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Monfared, Saleh Khalaj and van der Kouwe, Erik and Slowinska, Asia}, booktitle={Proceedings of the 18th European Workshop on Systems Security}, pages={56--62}, year={2025} }
**3. [HyperEvade: 使用 HyperDbg 对抗反调试技术并增强嵌套虚拟化中的透明性 (DEBT'25)](https://www.jot.fm/contents/issue_2026_01/a8.html)** [[PDF](https://www.jot.fm/issues/issue_2026_01/a8.pdf)]```
@article{ruytenberg2026hyperevade,
title={HyperEvade: Countering Anti-Debugging Techniques and Enhancing Transparency in Nested Virtualization using HyperDbg},
author={Ruytenberg, Bj{\"o}rn and Karvandi, Mohammad Sina},
journal={Journal of Object Technology},
volume={25},
number={1},
pages={1--3},
year={2026},
publisher={Association Internationale pour les Technologies Objets}
}
4. 数字漏洞:使用 DReaMcatcher 绕过商业音频 DRM 解决方案(EuroSys'26) [PDF]``` @inproceedings{ruytenberg2026digital, title={Digital Hole: Bypassing Commercial Audio DRM Solutions with DReaMcatcher}, author={Ruytenberg, Bj{"o}rn and Karvandi, Mohammad Sina and Bos, Herbert and van der Kouwe, Erik and Slowinska, Asia}, booktitle={Proceedings of the 21st European Conference on Computer Systems}, pages={484--496}, year={2026} }
**5. [TRM:一种基于虚拟机监控器的高效恶意软件分析与内存重建框架(AsiaCCS'26)](https://dl.acm.org/doi/10.1145/3779208.3785293)** [[PDF](https://dl.acm.org/doi/pdf/10.1145/3779208.3785293)]```
@inproceedings{karvandi2026trm,
title={TRM: An Efficient Hypervisor-Based Framework For Malware Analysis and Memory Reconstruction},
author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Arasteh, Sima and Monfared, Saleh Khalaj and Fallah, Mohammad K and Gorgin, Saeid and Lee, Jeong-A and Slowinska, Asia and van der Kouwe, Erik},
booktitle={Proceedings of the ACM Asia Conference on Computer and Communications Security},
pages={68--82},
year={2026}
}
您还可以阅读这篇文章,其中描述了 HyperDbg 调试器的整体架构、技术难点、设计决策与内部实现;这篇文章介绍了我们在 vm-exit 透明性方面的工作;这篇文章介绍了在虚拟机监控器(hypervisor)内部排查 Bug 的方法;以及这篇文章,介绍了 HyperDbg 中引入的全新逆向工程技术。更多文章、帖子和资源可在 awesome 仓库中获取,此外,slides 仓库也提供了演示文稿幻灯片供进一步参考。
独特功能
- 基于 Hypervisor 的高级内核模式调试器 [link][link][link]
- 经典 EPT 钩子(隐藏断点) [link][link][link]
- 内联 EPT 钩子(内联 Hook) [link][link]
- 监控内存读写(无限制地模拟硬件调试寄存器) [link][link][link]
- SYSCALL 钩子(禁用 EFER 并处理 #UD) [link][link][link]
- SYSRET 钩子(禁用 EFER 并处理 #UD) [link][link]
- CPUID 钩子与监控 [link][link]
- RDMSR 钩子与监控 [link][link]
- WRMSR 钩子与监控 [link][link]
- RDTSC/RDTSCP 钩子与监控 [link]
- RDPMC 钩子与监控 [link]
- VMCALL 钩子与监控 [link]
- 调试寄存器钩子与监控 [link]
- I/O 端口(IN 指令)钩子与监控 [link][link]
- I/O 端口(OUT 指令)钩子与监控 [link][link]
- MMIO 监控 [link]
- 异常(IDT < 32)监控 [link][link][link]
- 外部中断(IDT > 32)监控 [link][link][link]
- 运行自动化脚本 [link]
- 透明模式与 Hyperevade 项目(反调试与反虚拟机监控器对抗) [link][link][link]
- 在 VMX-root 与 VMX 非 root 模式(内核与用户态)中运行自定义汇编代码 [link]
- 检查自定义条件 [link][link]
- 进程级与线程级调试 [link][link][link]
- 兼容 VMX-root 的消息跟踪 [link]
- 强大的内核端脚本引擎 [link][link]
- 支持符号(解析 PDB 文件) [link][link]
- 将数据映射到符号并从 PDB 文件创建结构体、枚举 [link][link][link]
- 事件转发(#DFIR) [link][link]
- 透明断点处理程序 [link][link]
- 各种自定义脚本 [link]
- HyperDbg 软件开发工具包(SDK) [link]
- 事件短路 [link][link]
- 跟踪函数调用与返回地址的记录 [link]
- 内核级长度反汇编引擎(LDE) [link][link]
- 内存执行监控与执行阻断 [link]
- 自定义页错误注入 [link]
- 不同的事件调用阶段 [link]
- 注入自定义中断/异常/故障 [link][link]
- 调试器模式下的即时事件 [link]
- 检测内核到用户与用户到内核的转换 [link]
- 物理内存监控钩子 [link]
- 枚举 PCI/PCI-e 设备 [link]
- 解释并转储 PCI/PCI-e 配置空间(CAM) [link]
- 在 XAPIC 和 X2APIC 模式下转储 IDT 条目、I/O APIC 和本地 APIC [link][link][link]
- 触发并统计系统管理模式(SMM)中断(SMI) [link]
- 附加到用户模式进程并阻止其执行 [link]
- 拦截 XSETBV 指令的执行 [link]
- 编写库脚本文件 [link]
- 增强的可移植可执行文件(PE)解析器 [link]
- 使用最后分支记录(LBR)跟踪分支 [link][link][link][link][link][link][link]
工作原理
您可以在文档中了解 HyperDbg 及其功能的内部设计。下面是一个展示 HyperDbg 工作方式的高级示意图:
脚本
您可以编写自己的**脚本**来自动化调试流程。HyperDbg 拥有一个功能强大、快速且完全在内核端实现的脚本引擎。
参与贡献
我们非常感谢您为 HyperDbg 做出贡献。我们整理了一份您可能感兴趣的潜在任务清单。
如果您想为 HyperDbg 做贡献,请阅读贡献指南。
许可证
HyperDbg 及其所有子模块和仓库,除非另有指定许可证,均采用 GPLv3 许可证。
依赖项由其各自的许可证授权。

