
HyperDbg v0.23
最先进的原生调试工具
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}
}
