09
2025
04
16:59:02

HyperDbg

HyperDbg 是一个开源社区驱动的,基于硬件辅助的用户态与内核态Windows调试器,专注于利用现代硬件技术提供全新调试功能。它通过英特尔VT-x及EPT(Extended Page Tables)虚拟化技术,在不依赖API和传统软件调试机制的前提下,使用次层页表监视内核与用户执行。HyperDbg设计了如隐形钩子等特性,这些特性旨在保持原有内联钩子的速度,同时也为逆向工程、模糊测试提供了强大工具。

\

\

HyperDbg Debugger

HyperDbg Debugger is an open-source, community-driven, hypervisor-assisted, user-mode, and kernel-mode Windows debugger with a focus on using modern hardware technologies. It is a debugger designed for analyzing, fuzzing, and reversing.

You can follow HyperDbg on Twitter or Mastodon to get notified about new releases, or join any of the HyperDbg groups, where you can ask developers and open-source reversing enthusiasts for help setting up and using HyperDbg.

Description

HyperDbg is designed with a focus on using modern hardware technologies to provide new features to the debuggers' world. It operates on top of Windows by virtualizing an already running system using Intel VT-x and EPT. This debugger aims not to use any APIs and software debugging mechanisms, but instead, it uses Second Layer Page Table (a.k.a. Extended Page Table or EPT) extensively to monitor both kernel and user executions.

HyperDbg comes with features like hidden hooks, which are as fast as old inline hooks, but also stealth. It mimics hardware debug registers for (read & write) to a specific location, but this time entirely invisible for both Windows kernel and the programs, and of course, without any limitation in size or count!

Using TLB-splitting, and having features such as measuring code coverage and monitoring all mov(s) to/from memory by a function, makes HyperDbg a unique debugger.

Although it has novel features, HyperDbg tries to be as stealthy as possible. It doesn’t use any debugging APIs to debug Windows or any application, so classic anti-debugging methods won’t detect it. Also, it resists the exploitation of time delta methods (e.g., RDTSC/RDTSCP) to detect the presence of hypervisors, therefore making it much harder for applications, packers, protectors, malware, anti-cheat engines, etc. to discover the debugger.

Build & Installation

You can download the latest compiled binary files from releases; otherwise, if you want to build HyperDbg, you should clone HyperDbg with the --recursive flag.

 复制代码 隐藏代码
git clone --recursive https://github.com/HyperDbg/HyperDbg.git

Please visit Build & Install and Quick Start for a detailed explanation of how to start with HyperDbg. You can also see the FAQ for more information, or if you previously used other native debuggers like GDB, LLDB, or WinDbg, you could see the command map.

tutorials" style="overflow-wrap: break-word; margin: 0px 0px 16px; padding: 0px; font-size: 1.25em; line-height: 1.25; border-bottom: 2px solid rgb(204, 204, 204); color: rgb(68, 68, 68); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; text-wrap: wrap; background-color: rgb(255, 255, 255);">Tutorials

The OpenSecurityTraining2's "Reversing with HyperDbg (Dbg3301)" tutorial series, available on OST2's website (preferred) and YouTube is the recommended way to get started with and learn HyperDbg. It guides you through the initial steps of using HyperDbg, covering essential concepts, principles, and debugging functionalities, along with practical examples and numerous reverse engineering methods that are unique to HyperDbg.

If you're interested in understanding the internal design and architecture of hypervisors and HyperDbg, you can read the Hypervisor From Scratch tutorials.

Publications

In case you use one of HyperDbg's components in your work, please consider citing our papers.

1. HyperDbg: Reinventing Hardware-Assisted Debugging (CCS'22) [arXiv]

 复制代码 隐藏代码
@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} }

2. The Reversing Machine: Reconstructing Memory Assumptions [arXiv]

 复制代码 隐藏代码
@article{karvandi2024reversing,   title={The Reversing Machine: Reconstructing Memory Assumptions},   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 van der Kouwe, Erik},   journal={arXiv preprint arXiv:2405.00298},   year={2024} }

You can also read this article as it describes the overall architecture, technical difficulties, design decisions, and internals of HyperDbg Debugger, this article about our efforts on vm-exit transparency, and this article about chasing bugs within hypervisors. More articles, posts, and resources are available at the awesome repo, and in addition, the slides repo provides presentation slides for further reference.

Unique Features

How does it work?

You can read about the internal design of HyperDbg and its features in the documentation. Here's a top-level diagram that shows how HyperDbg works:

Scripts

You can write your scripts to automate your debugging journey. HyperDbg has a powerful, fast, and entirely kernel-side implemented script engine.

Contributing

Contributing to HyperDbg is super appreciated. We have made a list of potential tasks that you might be interested in contributing towards.

If you want to contribute to HyperDbg, please read the Contribution Guide.

License

HyperDbg, and all its submodules and repos, unless a license is otherwise specified, are licensed under GPLv3 LICENSE.

Dependencies are licensed by their own.

https://github.com/HyperDbg/HyperDbg/releases




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/10263.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: