OllyDbg — это ассемблерно-уровневый отладчик для семейства процессоров x86, разработанный для анализа исполняемых файлов без исходного кода. Программа ориентирована на динамический анализ и отладку бинарных приложений под управлением Windows, предоставляя возможности трассировки исполнения, наблюдения за регистрами и памятью, а также интерактивной работы с машинным кодом. OllyDbg известен своей способностью автоматически распознавать и отображать ассемблерные инструкции, вызовы функций и структуру стека, что делает его популярным инструментом среди реверс-инженеров и специалистов по безопасности.
Исторически OllyDbg появился в начале 2000-х годов и приобрёл широкое распространение как лёгкий и удобный отладчик с акцентом на анализ исполняемых модулей без исходников. Программа поддерживает расширение через плагины, что позволяет добавлять дополнительные функции: статический анализ, автоматическое распознавание библиотечных вызовов, декодирование упаковщиков и прочие вспомогательные механизмы. Хотя официальная разработка оригинальной версии со временем замедлилась, сообщество продолжило создавать плагины и форки, сохраняя актуальность инструмента для задач реверса и отладки.
- Дизассемблирование: отображение ассемблерных инструкций из исполняемого кода с возможностью редактирования и комментирования.
 - Отладка в реальном времени: запуск, пауза, поинструкционная и поблочная трассировка исполнения программы с контролем регистров и флагов.
 - Наблюдение за памятью: просмотр и изменение областей памяти процесса, отслеживание чтения/записи и разметка участков кода/данных.
 - Управление точками останова: аппаратные и программные брейкпойнты, условные брейкпойнты и логирование событий исполнения.
 - Анализ стека и вызовов: обзор стека вызовов, аргументов функций и возвращаемых значений в ходе выполнения.
 - Поиск паттернов и сигнатур: поиск последовательностей байтов, инструкций и строк в загруженных модулях и памяти процесса.
 - Плагины и расширяемость: интерфейс для сторонних плагинов, позволяющий добавлять декомпиляцию, распаковку, интеграцию с базами сигнатур и прочие функции.
 - Интерактивное редактирование: изменение кода в памяти, подмена инструкций и тестирование патчей на лету.
 - Символьная и именованная разметка: присвоение имён функциям и переменным, добавление меток и комментариев для облегчения анализа.