
Le débogueur Hyperdbg est un débogueur Windows, axé sur l'hyperviseur, en mode utilisateur et en mode noyau, axé sur la communauté, en mode utilisateur. Il s'agit d'un débogueur conçu pour analyser, fuzzing et inversion.
Vous pouvez suivre Hyperdbg sur Twitter ou Mastodon pour vous faire avertir de nouvelles versions, ou rejoindre l'un des groupes HyperDBG, où vous pouvez demander aux développeurs et aux amateurs de renversement d'Open-source pour aider à installer et à utiliser HyperDBG.
HyperDBG est conçu en mettant l'accent sur l'utilisation des technologies matérielles modernes pour fournir de nouvelles fonctionnalités au monde des débogueurs. Il fonctionne au-dessus des fenêtres en virtualisant un système déjà en cours d'exécution à l'aide d'Intel VT-X et EPT. Ce débogueur vise à ne pas utiliser de mécanismes de débogage API et de logiciels, mais à la place, il utilise largement le tableau de page de deuxième couche (aka Tableau de page étendu ou EPT) pour surveiller les exécutions du noyau et des utilisateurs.
L'utilisation de TLB-Spliting, et d'avoir des fonctionnalités telles que la mesure de la couverture du code et la surveillance de tous les MOV (s) à / depuis une fonction par une fonction fait de HyperDBG un débogueur unique.
Bien qu'il ait de nouvelles caractéristiques, Hyperdbg essaie d'être aussi furtif que possible. Il n'utilise aucune API de débogage pour déboguer Windows ou aucune application, de sorte que les méthodes anti-débugage classiques ne le détectent pas. De plus, il résiste à l'exploitation des méthodes de Delta Time (par exemple, RDTSC / RDTSCP) pour détecter la présence d'hyperviseurs, ce qui rend donc beaucoup plus difficile pour les applications, les emballeurs, les protecteurs, les logiciels malveillants, les moteurs anti-cheat, etc. pour découvrir le débogueur.
Vous pouvez télécharger les derniers fichiers binaires compilés à partir des versions ; Sinon, si vous souhaitez construire HyperDBG, vous devez cloner HyperDBG avec le drapeau --recursive .
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
Veuillez visiter la construction et l'installation et le démarrage rapide pour une explication détaillée de la façon de commencer par HyperDBG . Vous pouvez également voir la FAQ pour plus d'informations, ou si vous avez précédemment utilisé d'autres débuggeurs natifs comme GDB, LLDB ou WINDBG, vous pouvez voir la carte de commande.
La série Tutorial "Reversing With HyperDBG (REVERSING avec HYPERDBG (DBG3301) , disponible sur le site Web d'Ost2 ( préféré ) et YouTube est le moyen recommandé de démarrer et d'apprendre HyperDBG. Il vous guide à travers les étapes initiales de l'utilisation de HyperDBG, couvrant les concepts essentiels, les principes et les fonctionnalités de débogage, ainsi que des exemples pratiques et de nombreuses méthodes d'ingénierie inverse qui sont uniques à HyperDBG.
Si vous êtes intéressé à comprendre la conception et l'architecture internes des hyperviseurs et de l'hyperdbg, vous pouvez lire l' hyperviseur à partir de tutoriels à zéro .
Dans le cas où vous utilisez l'un des composants de Hyperdbg dans votre travail, envisagez de citer nos papiers.
1. Hyperdbg: réinventer le débogage assisté par le matériel (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. La machine d'inversion: reconstruire les hypothèses de mémoire [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}
}
Vous pouvez également lire cet article car il décrit l'architecture globale, les difficultés techniques, les décisions de conception et les composants internes de HyperDBG Debugger, cet article sur nos efforts sur la transparence de l'exit VM, et cet article sur la poursuite des bogues au sein des hyperviseurs. Plus d'articles, de publications et de ressources sont disponibles au Repo Awesome , et en outre, le repo des diapositives fournit des diapositives de présentation pour une référence supplémentaire.
Vous pouvez lire sur la conception interne de HyperDBG et ses fonctionnalités dans la documentation. Voici un diagramme de haut niveau qui montre comment fonctionne HyperDBG:
Vous pouvez écrire vos scripts pour automatiser votre parcours de débogage. Hyperdbg a un moteur de script implémenté puissant, rapide et entièrement du noyau.
Contribuer à HyperDBG est super apprécié. Nous avons fait une liste de tâches potentielles auxquelles vous pourriez être intéressée à contribuer.
Si vous souhaitez contribuer à HyperDBG, veuillez lire le guide de contribution.
Hyperdbg , et tous ses sous-modules et dépôts, sauf si une licence est autrement spécifiée, est concédé sous licence GPLV3 .
Les dépendances sont autorisées par les leurs.