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.
Follow HyperDbg on Twitter to get notified about new releases.
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 Intel PT. 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 is 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 stealth 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.
(not released yet !)
If you want to build HyperDbg, you should clone HyperDbg with --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 FAQ for more information.
You can read about internal design of HyperDbg and its features in the documentation. Here's a top-level diagram that shows how HyperDbg works:
You can write your scripts to automate your debugging journey. HyperDbg has a powerful, fast, and entirely kernel-side implemented script engine.
Contributing in HyperDbg is super appreciated. We have made a list of potential tasks that you might be intersted in contributing towards.
If you want to contribute in HyperDbg please read Contribution Guide.
HyperDbg, and all its submodules and repos, unless a license is otherwise specified, are licensed under GPLv3 LICENSE.
Dependencies are licensed by their own.
HyperDbg's HDL module for hardware-level debugging
Goja debugger's CLI frontend
A list of awesome resources about HyperDbg
This is the documentation of HyperDbg Debugger. You can also visit https://docs.hyperdbg.org
A collection of useful HyperDbg scripts
Slides about HyperDbg
Native Debuggers command map and cheatsheet.
A benchmark & debug helper plugin for Fat-Free framework.