Torna agli aggiornamenti
New releaseJul 21, 2026

HyperDbg v0.22

Strumenti di debug nativi all'avanguardia

Condividi

Website Documentation Doxygen Published Academic Researches License

Debugger HyperDbg

HyperDbg Debugger
HyperDbg Debugger è un debugger open-source assistito da hypervisor per Windows (il supporto a Linux è attualmente in fase di sviluppo!) con supporto per il debug sia in modalità utente sia in modalità kernel (nativa). È progettato per il reverse engineering, il fuzzing e l'analisi avanzata di sistema, sfruttando funzionalità moderne di virtualizzazione hardware e tracing.

Puoi seguire HyperDbg su Twitter o Mastodon per ricevere notifiche sulle nuove release, oppure unirti a uno qualsiasi dei gruppi di HyperDbg, dove puoi chiedere aiuto a sviluppatori e appassionati di reverse engineering open-source per configurare e utilizzare HyperDbg.

Descrizione

HyperDbg è costruito attorno alle moderne tecnologie di virtualizzazione hardware per introdurre capacità che vanno oltre quelle dei debugger tradizionali. Funziona al di sopra del sistema operativo, virtualizzando un sistema già in esecuzione tramite Intel VT-x ed Extended Page Tables (EPT). Combinando la virtualizzazione con tecnologie di tracing avanzate come Intel Processor Trace (Intel PT), HyperDbg offre potenti capacità di tracing e di Virtual Machine Introspection (VMI).

HyperDbg Debugger

Funzionalità principali

HyperDbg fornisce un'ampia gamma di funzionalità di debugging avanzate, inclusi diversi tipi di hook nascosti basati su EPT. Può emulare i breakpoint hardware per il monitoraggio della memoria in lettura, scrittura ed esecuzione in specifici intervalli di indirizzi, rimanendo trasparente sia al sistema operativo sia alle applicazioni target. A differenza dei registri di debug hardware, queste funzionalità di monitoraggio non sono limitate dal numero di registri di debug disponibili o da vincoli dimensionali. Inoltre, HyperDbg è in grado di tracciare l'esecuzione attraverso diversi livelli di privilegio, incluse le transizioni dalla modalità utente alla modalità kernel (ad esempio tramite system call, heaven's gate, fault, eccezioni e interrupt), dal kernel ai driver di dispositivo e dalla modalità kernel di nuovo alla modalità utente, consentendo un'analisi completa dell'intero flusso di esecuzione.

Inoltre, HyperDbg supporta l'hooking delle system call, il tracing del flusso di controllo tramite funzionalità hardware di tracing e il monitoraggio completo delle operazioni di I/O, incluse sia la I/O mappata in memoria (MMIO) sia la I/O mappata su porte (PMIO), consentendo un'analisi dettagliata delle interazioni con i dispositivi e le periferiche esterne.

Oltre a ciò, HyperDbg include una vasta raccolta di eventi aggiuntivi specificamente progettati per il reverse engineering, l'analisi di malware e l'analisi di programmi a basso livello. Per un elenco completo degli eventi supportati e della relativa documentazione, fai riferimento all'elenco completo delle funzionalità.

HyperDbg è progettato per operare nel modo più furtivo possibile. Non utilizza alcuna API di debugging per eseguire il debug del sistema operativo o di qualsiasi applicazione, quindi i classici metodi anti-debug non lo rileveranno. Include inoltre un modulo specializzato progettato per potenziarne le capacità di invisibilità. Questo modulo monitora i tentativi di rilevare la presenza di un hypervisor o di un debugger e applica varie tecniche per prima segnalare e poi mitigare o aggirare tali meccanismi di rilevamento. Sebbene una trasparenza completa non possa essere garantita in tutti gli scenari, queste funzionalità aumentano significativamente la difficoltà di rilevare HyperDbg, rendendo molto più difficile per applicazioni, packer, protezioni software, malware, sistemi anti-cheat e altri meccanismi di sicurezza identificarne la presenza.

Perché HyperDbg?

HyperDbg è più difficile da configurare e utilizzare e richiede inoltre una conoscenza di sistema a basso livello più approfondita rispetto ai debugger tradizionali. Tuttavia, offre due vantaggi principali:

  1. Controllo completo del sistema e del SO
    HyperDbg opera a livello di hypervisor, offrendo capacità potenti che semplicemente non sono possibili con i debugger classici. Questo ti consente di sfruttare [funzionalità] assistite dall'hardware (https://github.com/HyperDbg/HyperDbg?tab=readme-ov-file#unique-features) per scenari avanzati di reverse engineering e debugging.

  2. Invisibilità e resistenza al rilevamento
    Poiché HyperDbg non si basa sulle API di debugging standard del sistema operativo, è generalmente molto più difficile (sebbene non impossibile) da rilevare. Questo lo rende una scelta forte quando si lavora contro protezioni anti-debug.

Questi vantaggi aprono tecniche completamente nuove di debugging e reverse engineering che vanno oltre ciò che i debugger convenzionali possono offrire.

Build e installazione

Puoi scaricare gli ultimi file binari compilati dalla pagina delle release; in alternativa, se vuoi compilare HyperDbg, devi clonare HyperDbg con il flag --recursive.``` git clone --recursive https://github.com/HyperDbg/HyperDbg.git

Visita **[Build & Install](https://docs.hyperdbg.org/getting-started/build-and-install)** e **[Quick Start](https://docs.hyperdbg.org/getting-started/quick-start)** per una spiegazione dettagliata su come iniziare con **HyperDbg**. Puoi anche consultare le **[FAQ](https://docs.hyperdbg.org/getting-started/faq)** per maggiori informazioni, oppure se in precedenza hai usato altri debugger nativi come GDB, LLDB o WinDbg, puoi vedere la [mappa dei comandi](https://hyperdbg.github.io/commands-map).

## Tutorial

La serie di tutorial **OpenSecurityTraining2's "Reversing with HyperDbg (Dbg3301)**", disponibile su [**sito di OST2**](https://ost2.fyi/Dbg3301) (_preferito_) e [**YouTube**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY) è il modo consigliato per iniziare e imparare HyperDbg. Ti guida attraverso i passaggi iniziali dell'uso di HyperDbg, coprendo concetti essenziali, principi e funzionalità di debug, insieme a esempi pratici e numerosi metodi di reverse engineering esclusivi di HyperDbg.

Se sei interessato a comprendere il design interno e l'architettura degli hypervisor e di HyperDbg, puoi leggere i tutorial [**Hypervisor From Scratch**](https://rayanfam.com/tutorials).

## Pubblicazioni

Nel caso in cui utilizzi uno dei componenti di **HyperDbg** nel tuo lavoro, ti preghiamo di prendere in considerazione la citazione dei nostri articoli.

**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}
}
Altro paper basato su HyperDbg...

2. hwdbg: Debugging Hardware Like Software (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. [HyperEvade: Contrastare le Tecniche Anti-Debugging e Migliorare la Trasparenza nella Virtualizzazione Annidata utilizzando 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. Digital Hole: bypassare le soluzioni DRM audio commerciali con 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 efficiente basato su hypervisor per l'analisi di malware e la ricostruzione della memoria (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}
}

Puoi anche leggere questo articolo che descrive l'architettura complessiva, le difficoltà tecniche, le decisioni progettuali e i meccanismi interni di HyperDbg Debugger, questo articolo sui nostri sforzi per la trasparenza delle vm-exit, questo articolo sulla caccia ai bug all'interno degli hypervisor e questo articolo sulle nuove tecniche di reverse engineering introdotte in HyperDbg. Ulteriori articoli, post e risorse sono disponibili nel repository awesome e, inoltre, il repository slides fornisce slide di presentazione per ulteriori riferimenti.

Funzionalità Uniche

  • Debugger avanzato in modalità kernel basato su hypervisor [link][link][link]
  • Hook EPT classico (breakpoint nascosto) [link][link][link]
  • Hook EPT inline (hook in linea) [link][link]
  • Monitor della memoria per R/W (emulazione dei registri di debug hardware senza limitazioni) [link][link][link]
  • Hook SYSCALL (disabilita EFER e gestisci #UD) [link][link][link]
  • Hook SYSRET (disabilita EFER e gestisci #UD) [link][link]
  • Hook e monitor CPUID [link][link]
  • Hook e monitor RDMSR [link][link]
  • Hook e monitor WRMSR [link][link]
  • Hook e monitor RDTSC/RDTSCP [link]
  • Hook e monitor RDPMC [link]
  • Hook e monitor VMCALL [link]
  • Hook e monitor dei registri di debug [link]
  • Hook e monitor delle porte I/O (istruzione IN) [link][link]
  • Hook e monitor delle porte I/O (istruzione OUT) [link][link]
  • Monitor MMIO [link]
  • Monitor delle eccezioni (IDT < 32) [link][link][link]
  • Monitor degli interrupt esterni (IDT > 32) [link][link][link]
  • Esecuzione di script automatizzati [link]
  • Progetto Transparent-mode e Hyperevade (resistenza anti-debugging e anti-hypervisor) [link][link][link]
  • Esecuzione di assembly personalizzato sia in VMX-root che in VMX non-root (kernel e utente) [link]
  • Verifica di condizioni personalizzate [link][link]
  • Debugging specifico per processo e per thread [link][link][link]
  • Tracciamento dei messaggi compatibile con VMX-root [link]
  • Potente motore di scripting lato kernel [link][link]
  • Supporto ai simboli (parsing dei file PDB) [link][link]
  • Associazione dei dati ai simboli e creazione di strutture ed enum dai file PDB [link][link][link]
  • Inoltro degli eventi (#DFIR) [link][link]
  • Gestore di breakpoint trasparente [link][link]
  • Vari script personalizzati [link]
  • Kit di sviluppo software (SDK) di HyperDbg [link]
  • Cortocircuitazione degli eventi [link][link]
  • Tracciamento dei record di chiamate di funzione e indirizzi di ritorno [link]
  • Motore disassembler di lunghezza a livello kernel (LDE) [link][link]
  • Monitor dell'esecuzione della memoria e blocco dell'esecuzione [link]
  • Iniezione personalizzata di page fault [link]
  • Diverse fasi di chiamata degli eventi [link]
  • Iniezione di interrupt/eccezioni/fault personalizzati [link][link]
  • Eventi istantanei nella modalità debugger [link]
  • Rilevamento delle transizioni da kernel a utente e da utente a kernel [link]
  • Hook di monitoraggio della memoria fisica [link]
  • Enumerazione dei dispositivi PCI/PCI-e [link]
  • Interpretazione e dump dello spazio di configurazione PCI/PCI-e (CAM) [link]
  • Dump delle voci IDT, dell'I/O APIC e dell'APIC locale nelle modalità XAPIC e X2APIC [link][link][link]
  • Attivazione e conteggio degli interrupt di System Management Mode (SMM) (SMIs) [link]
  • Aggancio al processo in modalità utente e prevenzione dell'esecuzione [link]
  • Intercettazione dell'esecuzione delle istruzioni XSETBV [link]
  • Scrittura di file di script di libreria [link]
  • Parser potenziato per Portable Executable (PE) [link]
  • Tracciamento dei branch tramite Last Branch Record (LBR) [link][link][link][link][link][link][link]

Come funziona?

Puoi approfondire il design interno di HyperDbg e le sue funzionalità nella documentazione. Ecco un diagramma di alto livello che mostra come funziona HyperDbg:

HyperDbg Design


Script

Puoi scrivere i tuoi scripts per automatizzare la tua esperienza di debug. HyperDbg ha un potente, veloce e interamente implementato lato kernel motore di script.

Contribuire

Contribuire a HyperDbg è molto apprezzato. Abbiamo preparato un elenco di potenziali attività a cui potresti essere interessato a contribuire.

Se vuoi contribuire a HyperDbg, leggi la guida per contribuire.

Licenza

HyperDbg, e tutti i suoi sottomoduli e repository, salvo ove sia specificata una licenza diversa, sono concessi in licenza sotto GPLv3.

Le dipendenze sono soggette alle proprie licenze.

Categorie