
HyperdBG Debugger es un depurador de Windows de código abierto, impulsado por la comunidad, asistido por hipervisor, en modo de usuario y en modo de kernel, con un enfoque en el uso de tecnologías de hardware modernas. Es un depurador diseñado para analizar, borrar y revertir.
Puede seguir a HyperdBG en Twitter o Mastodon para recibir una notificación sobre nuevos lanzamientos, o unirse a cualquiera de los grupos HyperdBG, donde puede preguntar a los desarrolladores y a los entusiastas de reversión de código abierto para obtener ayuda para configurar y usar HyperdBG.
HyperdBG está diseñado con un enfoque en el uso de tecnologías de hardware modernas para proporcionar nuevas características al mundo de los debuggers. Funciona sobre Windows virtualizando un sistema que ya está en ejecución utilizando Intel VT-X y EPT. Este depurador tiene como objetivo no utilizar ninguna API y mecanismos de depuración de software, pero en su lugar, utiliza una tabla de página de segunda capa (también conocida como tabla de página extendida o EPT) ampliamente para monitorear tanto el núcleo como las ejecuciones de usuarios.
El uso de la división TLB y tener características como medir la cobertura de código y monitorear todos los mov (s) hacia/desde la memoria por una función, hace que HyperdBG sea un depurador único.
Aunque tiene características novedosas, HyperdBG intenta ser lo más sigiloso posible. No utiliza ninguna API de depuración para depurar Windows o ninguna aplicación, por lo que los métodos clásicos anti-debugging no lo detectarán. Además, resiste la explotación de los métodos delta del tiempo (p. Ej., RDTSC/RDTSCP) para detectar la presencia de hipervisores, lo que hace que sea mucho más difícil para aplicaciones, empacadores, protectores, malware, motores anti-trato, etc. para descubrir el depurador.
Puede descargar los últimos archivos binarios compilados de los lanzamientos ; De lo contrario, si desea construir HyperdBG, debe clonar HyperdBG con la bandera --recursive .
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
Visite la compilación e instalación y el inicio rápido para obtener una explicación detallada de cómo comenzar con HyperdBG . También puede ver las preguntas frecuentes para obtener más información, o si previamente usó otros depugadores nativos como GDB, LLDB o WindBG, puede ver el mapa de comandos.
La serie de tutoriales "Reversing with HyperdBG (DBG3301)" de OpenSecurityTurityTraining2 , disponible en el sitio web de OST2 ( preferido ) y YouTube es la forma recomendada de comenzar y aprender HyperdBG. Lo guía a través de los pasos iniciales de usar HyperdBG, que cubre conceptos esenciales, principios y funcionalidades de depuración, junto con ejemplos prácticos y numerosos métodos de ingeniería inversa que son exclusivas de HyperdBG.
Si está interesado en comprender el diseño interno y la arquitectura de Hypervisors e HyperdBG, puede leer los tutoriales de Hypervisor desde Scratch .
En caso de que use uno de los componentes de HyperdBG en su trabajo, considere citar nuestros documentos.
1. HyperdBG: Reinventar la depuración asistida por hardware (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 máquina de inversión: reconstrucción de supuestos de memoria [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}
}
También puede leer este artículo, ya que describe la arquitectura general, las dificultades técnicas, las decisiones de diseño y las partes internas de HyperdBG Debugger, este artículo sobre nuestros esfuerzos sobre la transparencia de VM-Exit, y este artículo sobre perseguir errores dentro de los hipervisores. Hay más artículos, publicaciones y recursos disponibles en el Repo Awesome , y además, el repositorio de diapositivas proporciona diapositivas de presentación para una referencia adicional.
Puede leer sobre el diseño interno de HyperdBG y sus características en la documentación. Aquí hay un diagrama de nivel superior que muestra cómo funciona HyperdBG:
Puede escribir sus scripts para automatizar su viaje de depuración. HyperdBG tiene un motor de guión implementado potente, rápido y totalmente del núcleo.
Contribuir a HyperdBG es súper apreciado. Hemos hecho una lista de tareas potenciales a las que podría estar interesado en contribuir.
Si desea contribuir a HyperdBG, lea la guía de contribución.
HyperdBG , y todos sus submódulos y repositorios, a menos que se especifique una licencia, tienen licencia bajo la licencia GPLV3 .
Las dependencias tienen licencia por la suya.