Hopper Disassembler — это программа для статического и частично интерактивного анализа исполняемых двоичных файлов, ориентированная на исследование кода, обратную разработку и аудит безопасности. Она предоставляет средства дизассемблирования и декомпиляции для нескольких архитектур, включая x86, x86_64, ARM и AArch64, а также инструменты для визуализации структуры программы: список функций, графы потока управления и представление псевдокода. Программа разрабатывалась как десктопное приложение и применяется исследователями, инженерами безопасности и разработчиками при анализе как нативных исполняемых модулей, так и форматированных бинарных файлов различных операционных систем.
Интерфейс сочетает текстовое представление ассемблерных инструкций с графическим отображением переходов между базовыми блоками и потоками управления. Hopper поддерживает просмотр и редактирование дизассемблированных участков, аннотации функций и переменных, а также экспорт результатов анализа в виде отчётов. В программу встроена поддержка скриптинга для автоматизации задач, что позволяет расширять возможности анализа и интегрировать сторонние процедуры. Описание конкретных версий и деталей реализации может меняться со временем; если в открытых источниках доступно мало сведений о текущих релизах, ниже приведено типичное описание функциональности, ожидаемой от подобного инструмента.
- Дизассемблирование: преобразование машинного кода в ассемблерный текст с поддержкой нескольких архитектур и вариантов набора команд.
 - Декомпиляция: генерация псевдокода, приближённого к исходному языку высокого уровня, для облегчения понимания логики программы.
 - Граф потоков управления: визуализация взаимосвязей между функциями и базовыми блоками, отображение ветвлений и переходов.
 - Навигация по коду: список функций, быстрый переход по вызовам и ссылкам, поиск по символам и шаблонам байтов.
 - Редактирование и аннотирование: возможность помечать участки кода, переименовывать функции и переменные, добавлять комментарии для документирования анализа.
 - Скрипты и автоматизация: интегрированный механизм для запуска пользовательских скриптов, расширяющих функционал и автоматизирующих повторяющиеся задачи.
 - Поддержка форматов исполняемых файлов: работа с типичными бинарными форматами (например, ELF, PE, Mach-O) и различными версиями платформенных ABI.
 - Экспорт и отчёты: сохранение результатов анализа в стандартных форматах для совместного использования и последующей обработки.
 - Интеграция с отладкой: возможности динамического анализа и отладки в сочетании со статическим представлением кода (в зависимости от версии и поддерживаемых плагинов).
 - Конфигурация и расширяемость: настраиваемые правила дизассемблирования, опции отображения и поддержка плагинов для добавления новых функций.