Назад к обновлениям
New releaseJul 21, 2026

HyperDbg v0.22

Передовые нативные инструменты отладки

Поделиться

Website Documentation Doxygen Published Academic Researches License

HyperDbg Debugger

HyperDbg Debugger
HyperDbg Debugger — это отладчик с открытым исходным кодом на основе гипервизора для Windows (поддержка Linux в настоящее время в разработке!) с поддержкой отладки как в пользовательском режиме, так и в режиме ядра (нативной). Он создан для реверс-инжиниринга, фаззинга и продвинутого анализа систем с использованием современных возможностей аппаратной виртуализации и трассировки.

Вы можете следить за HyperDbg в Twitter или Mastodon, чтобы узнавать о новых релизах, или присоединиться к любой из групп HyperDbg, где можно обратиться за помощью по настройке и использованию HyperDbg к разработчикам и энтузиастам реверс-инжиниринга из open-source-сообщества.

Описание

HyperDbg построен на основе современных технологий аппаратной виртуализации и предоставляет возможности, выходящие за рамки традиционных отладчиков. Он работает поверх операционной системы, виртуализируя уже запущенную систему с помощью Intel VT-x и расширенных таблиц страниц (EPT). Сочетая виртуализацию с передовыми технологиями трассировки, такими как Intel Processor Trace (Intel PT), HyperDbg обеспечивает мощные возможности трассировки и Virtual Machine Introspection (VMI).

HyperDbg Debugger

Основные возможности

HyperDbg предоставляет широкий набор расширенных функций отладки, включая несколько видов скрытых хуков на основе EPT. Он может эмулировать аппаратные точки останова по данным для мониторинга чтений, записей и выполнений в заданных диапазонах адресов, оставаясь незаметным как для операционной системы, так и для целевых приложений. В отличие от аппаратных отладочных регистров, эти средства мониторинга не ограничены количеством доступных отладочных регистров или ограничениями по размеру.

Кроме того, HyperDbg способен отслеживать выполнение на различных уровнях привилегий, включая переходы из пользовательского режима в режим ядра (например, через системные вызовы, heaven's gate, сбои (faults), исключения и прерывания), из ядра в драйверы устройств и обратно из режима ядра в пользовательский режим, что обеспечивает всесторонний анализ всего потока выполнения.

Кроме того, HyperDbg поддерживает хуки системных вызовов, трассировку потока управления с помощью аппаратных средств трассировки и всесторонний мониторинг операций ввода-вывода, включая ввод-вывод с отображением в память (MMIO) и портовый ввод-вывод (PMIO), что позволяет детально анализировать взаимодействие с устройствами и внешними периферийными устройствами.

Помимо этого, HyperDbg включает большую коллекцию дополнительных событий, специально предназначенных для реверс-инжиниринга, анализа вредоносных программ и низкоуровневого анализа программ. Полный список поддерживаемых событий и их документацию см. в полном списке возможностей.

HyperDbg спроектирован для максимально скрытной работы. Он не использует никаких отладочных API для отладки операционной системы или каких-либо приложений, поэтому классические методы антиотладки не смогут его обнаружить. Он также включает специализированный модуль, предназначенный для повышения его скрытности. Этот модуль отслеживает попытки обнаружить присутствие гипервизора или отладчика и применяет различные методы, чтобы сначала сообщить о таких механизмах обнаружения, а затем смягчить или обойти их. Хотя полная незаметность не может быть гарантирована во всех сценариях, эти функции значительно повышают сложность обнаружения HyperDbg, делая существенно более трудным для приложений, упаковщиков, протекторов ПО, вредоносных программ, античит-систем и других механизмов безопасности выявление его присутствия.

Почему HyperDbg?

HyperDbg сложнее настроить и использовать, а также требует более глубоких знаний о низкоуровневых системах по сравнению с традиционными отладчиками. Тем не менее, он предоставляет два главных преимущества:

  1. Полный контроль над системой и ОС
    HyperDbg работает на уровне гипервизора, предоставляя вам мощные возможности, которые просто невозможны с классическими отладчиками. Это позволяет использовать аппаратно-поддерживаемые функции для продвинутых сценариев реверс-инжиниринга и отладки.

  2. Скрытность и устойчивость к обнаружению
    Поскольку HyperDbg не полагается на стандартные отладочные API ОС, его в целом гораздо сложнее (хотя и не невозможно) обнаружить. Это делает его отличным выбором при работе против антиотладочных защит.

Эти преимущества открывают совершенно новые техники отладки и реверс-инжиниринга, выходящие за пределы возможностей обычных отладчиков.

Сборка и установка

Вы можете скачать последние скомпилированные бинарные файлы из релизов; в противном случае, если вы хотите собрать HyperDbg, следует клонировать HyperDbg с флагом --recursive.``` git clone --recursive https://github.com/HyperDbg/HyperDbg.git

Пожалуйста, посетите **[Build & Install](https://docs.hyperdbg.org/getting-started/build-and-install)** и **[Quick Start](https://docs.hyperdbg.org/getting-started/quick-start)** для получения подробных объяснений о том, как начать работу с **HyperDbg**. Вы также можете обратиться к **[FAQ](https://docs.hyperdbg.org/getting-started/faq)** за дополнительной информацией или, если вы ранее использовали другие нативные отладчики, такие как GDB, LLDB или WinDbg, посмотреть [карту команд](https://hyperdbg.github.io/commands-map).

## Обучающие материалы

Серия руководств **OpenSecurityTraining2's "Reversing with HyperDbg (Dbg3301)**", доступная на [**сайте OST2**](https://ost2.fyi/Dbg3301) (_предпочтительно_) и [**YouTube**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY), является рекомендуемым способом начать работу с HyperDbg и изучить его. Она проведет вас через начальные шаги использования HyperDbg, охватывая основные концепции, принципы и возможности отладки, а также практические примеры и многочисленные методы реверс-инжиниринга, уникальные для HyperDbg.

Если вам интересно разобраться во внутреннем устройстве и архитектуре гипервизоров и HyperDbg, вы можете прочитать руководства [**Hypervisor From Scratch**](https://rayanfam.com/tutorials).

## Публикации

Если вы используете какой-либо из компонентов **HyperDbg** в своей работе, пожалуйста, рассмотрите возможность цитирования наших статей.

**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}
}
Другая статья, построенная на основе 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: противодействие методам анти-отладки и повышение прозрачности во вложенной виртуализации с помощью 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: обход коммерческих аудио-DRM-решений с помощью 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: Эффективный фреймворк на основе гипервизора для анализа вредоносных программ и реконструкции памяти (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}
}

Вы также можете прочитать эту статью — в ней описываются общая архитектура, технические сложности, проектные решения и внутреннее устройство отладчика HyperDbg, эту статью о наших усилиях по обеспечению прозрачности vm-exit, эту статью о поиске ошибок внутри гипервизоров и эту статью о новых методах реверс-инжиниринга, представленных в HyperDbg. Другие статьи, посты и ресурсы доступны в репозитории awesome, а в репозитории slides представлены слайды презентаций для дальнейшего ознакомления.

Уникальные возможности

  • Продвинутый отладчик режима ядра на основе гипервизора [ссылка][ссылка][ссылка]
  • Классический EPT-хук (скрытая точка останова) [ссылка][ссылка][ссылка]
  • Инлайн EPT-хук (инлайн-хук) [ссылка][ссылка]
  • Мониторинг памяти на чтение/запись (эмуляция аппаратных регистров отладки без ограничений) [ссылка][ссылка][ссылка]
  • Хук SYSCALL (отключение EFER и обработка #UD) [ссылка][ссылка][ссылка]
  • Хук SYSRET (отключение EFER и обработка #UD) [ссылка][ссылка]
  • Хук и мониторинг CPUID [ссылка][ссылка]
  • Хук и мониторинг RDMSR [ссылка][ссылка]
  • Хук и мониторинг WRMSR [ссылка][ссылка]
  • Хук и мониторинг RDTSC/RDTSCP [ссылка]
  • Хук и мониторинг RDPMC [ссылка]
  • Хук и мониторинг VMCALL [ссылка]
  • Хук и мониторинг регистров отладки [ссылка]
  • Хук и мониторинг портов ввода-вывода (инструкция IN) [ссылка][ссылка]
  • Хук и мониторинг портов ввода-вывода (инструкция OUT) [ссылка][ссылка]
  • Мониторинг MMIO [ссылка]
  • Мониторинг исключений (IDT < 32) [ссылка][ссылка][ссылка]
  • Мониторинг внешних прерываний (IDT > 32) [ссылка][ссылка][ссылка]
  • Запуск автоматизированных скриптов [ссылка]
  • Прозрачный режим и проект Hyperevade (устойчивость к анти-отладке и антигипервизору) [ссылка][ссылка][ссылка]
  • Выполнение пользовательского ассемблерного кода как в VMX-root, так и в VMX non-root (режим ядра и пользовательский режим) [ссылка]
  • Проверка пользовательских условий [ссылка][ссылка]
  • Отладка с привязкой к процессу и потоку [ссылка][ссылка][ссылка]
  • Трассировка сообщений, совместимая с VMX-root [ссылка]
  • Мощный скриптовый движок на стороне ядра [ссылка][ссылка]
  • Поддержка символов (разбор PDB-файлов) [ссылка][ссылка]
  • Сопоставление данных с символами и создание структур, перечислений из PDB-файлов [ссылка][ссылка][ссылка]
  • Пересылка событий (#DFIR) [ссылка][ссылка]
  • Прозрачный обработчик точек останова [ссылка][ссылка]
  • Различные пользовательские скрипты [ссылка]
  • Комплект разработки программного обеспечения HyperDbg (SDK) [ссылка]
  • Короткое замыкание событий [ссылка][ссылка]
  • Отслеживание записей вызовов функций и адресов возврата [ссылка]
  • Механизм дизассемблирования с определением длины инструкций на уровне ядра (LDE) [ссылка][ссылка]
  • Мониторинг исполнения памяти и блокировка исполнения [ссылка]
  • Инъекция пользовательских page fault [ссылка]
  • Различные стадии вызова событий [ссылка]
  • Инъекция пользовательских прерываний/исключений/сбоев [ссылка][ссылка]
  • Мгновенные события в режиме отладчика [ссылка]
  • Обнаружение переходов из режима ядра в пользовательский режим и обратно [ссылка]
  • Хуки мониторинга физической памяти [ссылка]
  • Перечисление устройств PCI/PCI-e [ссылка]
  • Интерпретация и дамп конфигурационного пространства PCI/PCI-e (CAM) [ссылка]
  • Дамп записей IDT, I/O APIC и локального APIC в режимах XAPIC и X2APIC [ссылка][ссылка][ссылка]
  • Вызов и подсчёт прерываний режима системного управления (SMM) (SMI) [ссылка]
  • Подключение к процессу пользовательского режима и блокировка выполнения [ссылка]
  • Перехват выполнения инструкций XSETBV [ссылка]
  • Создание библиотечных скриптовых файлов [ссылка]
  • Расширенный парсер переносимых исполняемых файлов (PE) [ссылка]
  • Трассировка ветвлений с использованием Last Branch Record (LBR) [ссылка][ссылка][ссылка][ссылка][ссылка][ссылка][ссылка]

Как это работает?

Вы можете прочитать о внутреннем устройстве HyperDbg и его возможностях в документации. Ниже приведена общая схема, показывающая, как работает HyperDbg:

HyperDbg Design


Скрипты

Вы можете писать свои скрипты для автоматизации процесса отладки. HyperDbg имеет мощный, быстрый и полностью реализованный на стороне ядра скриптовый движок.

Участие в разработке

Любой вклад в HyperDbg очень ценится. Мы составили список потенциальных задач, в решение которых вы, возможно, захотите внести свой вклад.

Если вы хотите внести вклад в HyperDbg, пожалуйста, прочитайте Руководство по внесению вклада.

Лицензия

HyperDbg и все его подмодули и репозитории, если не указано иное, лицензированы под лицензией GPLv3.

Зависимости лицензированы по собственным лицензиям.

Категории