
HyperDbg v0.22
Outils de débogage natifs de pointe
HyperDbg Debugger

HyperDbg Debugger est un débogueur open-source assisté par hyperviseur pour Windows (le support de Linux est actuellement en développement !) avec prise en charge du débogage en mode utilisateur et en mode noyau (natif). Il est conçu pour le reverse engineering, le fuzzing et l'analyse avancée de systèmes à l'aide de fonctionnalités modernes de virtualisation matérielle et de traçage.
Vous pouvez suivre HyperDbg sur Twitter ou Mastodon pour être informé des nouvelles versions, ou rejoindre l'un des groupes HyperDbg, où vous pouvez demander de l'aide aux développeurs et aux passionnés de reverse engineering open-source pour installer et utiliser HyperDbg.
Description
HyperDbg est conçu autour de technologies modernes de virtualisation matérielle pour offrir des capacités allant au-delà de celles des débogueurs traditionnels. Il s'exécute au-dessus du système d'exploitation en virtualisant un système déjà en cours d'exécution à l'aide d'Intel VT-x et des tables de pages étendues (EPT). En combinant la virtualisation avec des technologies avancées de traçage telles que l'Intel Processor Trace (Intel PT), HyperDbg fournit de puissantes capacités de traçage et de Virtual Machine Introspection (VMI).
Capacités principales
HyperDbg fournit une large gamme de fonctionnalités avancées de débogage, notamment plusieurs types de hooks cachés basés sur l'EPT. Il peut émuler des points d'arrêt matériels sur données pour surveiller la mémoire, les lectures, écritures et exécutions à des plages d'adresses spécifiques, tout en restant transparent vis-à-vis du système d'exploitation et des applications cibles. Contrairement aux registres de débogage matériels, ces mécanismes de surveillance ne sont pas limités par le nombre de registres de débogage disponibles ni par des contraintes de taille. De plus, HyperDbg est capable de suivre l'exécution à travers différents niveaux de privilèges, y compris les transitions du mode utilisateur vers le mode noyau (par exemple, via les appels système, heaven's gate, les fautes, les exceptions et les interruptions), du noyau vers les pilotes de périphériques, et du mode noyau vers le mode utilisateur, permettant une analyse complète de l'ensemble du flux d'exécution.
De plus, HyperDbg prend en charge le hooking des appels système, le traçage du flux de contrôle via des fonctionnalités matérielles de traçage, et une surveillance complète des opérations d'E/S, incluant à la fois les E/S mappées en mémoire (MMIO) et les E/S mappées sur ports (PMIO), permettant une analyse détaillée des interactions avec les périphériques et les équipements externes.
Au-delà de cela, HyperDbg comprend une vaste collection d'événements supplémentaires spécialement conçus pour le reverse engineering, l'analyse de malwares et l'analyse de programmes de bas niveau. Pour une liste complète des événements pris en charge et de leur documentation, consultez la liste complète des fonctionnalités.
HyperDbg est conçu pour opérer de la manière la plus furtive possible. Il n'utilise aucune API de débogage pour déboguer le système d'exploitation ou une application, de sorte que les méthodes classiques d'anti-débogage ne le détecteront pas. Il comprend également un module spécialisé conçu pour renforcer ses capacités de furtivité. Ce module surveille les tentatives de détection de la présence d'un hyperviseur ou d'un débogueur et applique diverses techniques pour d'abord signaler, puis atténuer ou contourner ces mécanismes de détection. Bien qu'une transparence totale ne puisse être garantie dans tous les scénarios, ces fonctionnalités augmentent considérablement la difficulté de détection de HyperDbg, rendant nettement plus difficile pour les applications, les packers, les protecteurs de logiciels, les malwares, les systèmes anti-triche et autres mécanismes de sécurité d'identifier sa présence.
Pourquoi HyperDbg ?
HyperDbg est plus difficile à installer et à utiliser, et demande également une connaissance plus approfondie des systèmes de bas niveau par rapport aux débogueurs traditionnels. Cependant, il offre deux avantages majeurs :
-
Contrôle complet du système et de l'OS
HyperDbg opère au niveau de l'hyperviseur, vous offrant des capacités puissantes tout simplement impossibles avec les débogueurs classiques. Cela vous permet de tirer parti de fonctionnalités assistées par le matériel pour des scénarios avancés de reverse engineering et de débogage. -
Furtivité et résistance à la détection
Étant donné que HyperDbg ne dépend pas des API de débogage standard de l'OS, il est généralement beaucoup plus difficile (mais pas impossible) à détecter. Cela en fait un choix solide lorsque vous travaillez contre des protections anti-débogage.
Ces avantages ouvrent des techniques entièrement nouvelles de débogage et de reverse engineering qui vont au-delà de ce que les débogueurs conventionnels peuvent offrir.
Compilation et installation
Vous pouvez télécharger les derniers fichiers binaires compilés depuis les versions ; sinon, si vous voulez compiler HyperDbg, vous devez cloner HyperDbg avec l'option --recursive.```
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
Veuillez consulter **[Build & Install](https://docs.hyperdbg.org/getting-started/build-and-install)** et **[Quick Start](https://docs.hyperdbg.org/getting-started/quick-start)** pour une explication détaillée de la manière de démarrer avec **HyperDbg**. Vous pouvez également consulter la **[FAQ](https://docs.hyperdbg.org/getting-started/faq)** pour plus d'informations, ou si vous avez déjà utilisé d'autres débogueurs natifs comme GDB, LLDB ou WinDbg, vous pouvez voir la [carte des commandes](https://hyperdbg.github.io/commands-map).
## Tutoriels
La série de tutoriels **OpenSecurityTraining2's "Reversing with HyperDbg (Dbg3301)**", disponible sur [**le site d'OST2**](https://ost2.fyi/Dbg3301) (_préféré_) et [**YouTube**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY), est le moyen recommandé pour démarrer avec HyperDbg et l'apprendre. Il vous guide à travers les premières étapes de l'utilisation d'HyperDbg, en couvrant les concepts essentiels, les principes et les fonctionnalités de débogage, ainsi que des exemples pratiques et de nombreuses méthodes de rétro-ingénierie propres à HyperDbg.
Si vous souhaitez comprendre la conception interne et l'architecture des hyperviseurs et d'HyperDbg, vous pouvez lire les tutoriels [**Hypervisor From Scratch**](https://rayanfam.com/tutorials).
## Publications
Si vous utilisez l'un des composants d'**HyperDbg** dans votre travail, veuillez envisager de citer nos articles.
**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}
}
Autre article construit sur HyperDbg...
2. hwdbg: Déboguer le matériel comme le logiciel (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. [Contrer les techniques anti-débogage et améliorer la transparence dans la virtualisation imbriquée avec 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. Faille numérique : contourner les solutions DRM audio commerciales avec DReaMcatcher (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 : Un framework efficace basé sur l'hyperviseur pour l'analyse de malwares et la reconstruction de mémoire (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}
}
Vous pouvez également lire cet article qui décrit l'architecture globale, les difficultés techniques, les décisions de conception et les mécanismes internes du débogueur HyperDbg, cet article sur nos efforts en matière de transparence des vm-exit, cet article sur la traque des bogues dans les hyperviseurs, et cet article sur les nouvelles techniques de rétro-ingénierie introduites dans HyperDbg. D'autres articles, publications et ressources sont disponibles dans le dépôt awesome, et le dépôt slides fournit également des diapositives de présentation pour référence.
Fonctionnalités uniques
- Débogueur avancé en mode noyau basé sur l'hyperviseur [lien][lien][lien]
- Hook EPT classique (point d'arrêt caché) [lien][lien][lien]
- Hook EPT inline (Hook inline) [lien][lien]
- Surveillance de la mémoire en lecture/écriture (émulation des registres de débogage matériels sans limitation) [lien][lien][lien]
- Hook SYSCALL (désactivation d'EFER et gestion de #UD) [lien][lien][lien]
- Hook SYSRET (désactivation d'EFER et gestion de #UD) [lien][lien]
- Hook et surveillance CPUID [lien][lien]
- Hook et surveillance RDMSR [lien][lien]
- Hook et surveillance WRMSR [lien][lien]
- Hook et surveillance RDTSC/RDTSCP [lien]
- Hook et surveillance RDPMC [lien]
- Hook et surveillance VMCALL [lien]
- Hook et surveillance des registres de débogage [lien]
- Hook et surveillance des ports d'E/S (instruction IN) [lien][lien]
- Hook et surveillance des ports d'E/S (instruction OUT) [lien][lien]
- Surveillance MMIO [lien]
- Surveillance des exceptions (IDT < 32) [lien][lien][lien]
- Surveillance des interruptions externes (IDT > 32) [lien][lien][lien]
- Exécution de scripts automatisés [lien]
- Mode transparent et projet Hyperevade (résistance anti-débogage et anti-hyperviseur) [lien][lien][lien]
- Exécution d'assembleur personnalisé en VMX-root et VMX non-root (noyau et utilisateur) [lien]
- Vérification de conditions personnalisées [lien][lien]
- Débogage spécifique aux processus et aux threads [lien][lien][lien]
- Traçage de messages compatible VMX-root [lien]
- Moteur de scripts puissant côté noyau [lien][lien]
- Prise en charge des symboles (analyse des fichiers PDB) [lien][lien]
- Mappage des données vers les symboles et création de structures et d'énumérations à partir des fichiers PDB [lien][lien][lien]
- Transfert d'événements (#DFIR) [lien][lien]
- Gestionnaire de points d'arrêt transparent [lien][lien]
- Divers scripts personnalisés [lien]
- Kit de développement logiciel HyperDbg (SDK) [lien]
- Court-circuitage d'événements [lien][lien]
- Suivi des enregistrements des appels de fonctions et des adresses de retour [lien]
- Moteur de désassemblage de longueur au niveau noyau (LDE) [lien][lien]
- Surveillance de l'exécution de la mémoire et blocage de l'exécution [lien]
- Injection personnalisée de défauts de page [lien]
- Différentes étapes d'appel d'événements [lien]
- Injection d'interruptions/exceptions/défauts personnalisés [lien][lien]
- Événements instantanés en mode débogueur [lien]
- Détection des transitions noyau-vers-utilisateur et utilisateur-vers-noyau [lien]
- Hooks de surveillance de la mémoire physique [lien]
- Énumération des périphériques PCI/PCI-e [lien]
- Interprétation et vidage de l'espace de configuration PCI/PCI-e (CAM) [lien]
- Vidage des entrées IDT, de l'APIC d'E/S et de l'APIC local en modes XAPIC et X2APIC [lien][lien][lien]
- Déclenchement et comptage des interruptions du mode de gestion système (SMM) (SMI) [lien]
- Attachement au processus en mode utilisateur et blocage de l'exécution [lien]
- Interception de l'exécution des instructions XSETBV [lien]
- Écriture de fichiers de scripts de bibliothèque [lien]
- Analyseur amélioré d'exécutables portables (PE) [lien]
- Traçage des branches à l'aide du Last Branch Record (LBR) [lien][lien][lien][lien][lien][lien][lien]
Comment ça fonctionne ?
Vous pouvez en apprendre davantage sur la conception interne de HyperDbg et ses fonctionnalités dans la documentation. Voici un schéma de haut niveau qui montre comment HyperDbg fonctionne :
Scripts
Vous pouvez écrire vos scripts pour automatiser votre parcours de débogage. HyperDbg dispose d'un moteur de scripts puissant, rapide et entièrement implémenté côté noyau.
Contribution
Les contributions à HyperDbg sont grandement appréciées. Nous avons établi une liste de tâches potentielles auxquelles vous pourriez être intéressé à contribuer.
Si vous souhaitez contribuer à HyperDbg, veuillez lire le Guide de contribution.
Licence
HyperDbg, ainsi que tous ses sous-modules et dépôts, sauf indication contraire d'une licence, sont concédés sous licence GPLv3.
Les dépendances sont régies par leurs propres licences.

