Ghidra vs IDA Pro: все возможности бесплатного тулкина для реверса, разработанного в АНБ
Март 2019 запомнился публикацией Агентством национальной безопасности США полного инструментария для реверс-инжиниринга с громким названием Ghidra. Несколько лет назад информацию о нем впервые слили с сайта WikiLeaks. Многие тогда, наверное, мучались вопросом: что же использует для своего реверса NSA. В пределах программы Technology Transfer Program обнародовало исходники 32х проектов. Кто-то шутит, что АНБ будет использовать этот фонд для слежки за пользователями. В чем-то они правы: коды продуктов в свободном доступе, а их юзеры достаточно хардкорны, чтобы проверить все. Но сразу после релиза нашелся прокол. Мэттью Хики, ИБ-эксперт из Британии, обнаружил способность инструмента Ghidra в отладочном режиме открывать и слушать порт 18001. Это дает возможность подсоединиться к Ghidra отдаленно, с помощью JDWP. Специалист отмечает, что поправить ситуацию не составит труда — стоит заменить строчку 150 в папке support/launch.sh со звездочки на 127.0.0.1.
Ghidra: основные принципы работы
Загрузка Ghidra возможна только с официального сайта ghidra-sre.org, с одним исключением: для российских сетей доступ к программе закрыт. Но с VPN и это не проблема.
После загрузки архива ghidra_9.0_PUBLIC_20190228 следует его распаковка. Коротко о содержимом файла:
папка docs, в которой на английском языке представлена информация о самой программе, о созданииплагинов и описание ключевых возможностей в формате PDF;
папка с лицензиями;
папка server содержит перечень инструментов, с помощью которых и запускается сервер удаленной откладки;
в папку support помещен инструментарий для слаженной работы программы;
папка рrocessors знакомит со всеми архитектурами, которые поддерживает программа.
Чтобы посмотреть само приложение, нужно сначала установить Java, а потом открыть его в Windows, запустив ghidraRun.bat.
Для начала нужно основать проект, в который после добавляются необходимые бинарные файлы для анализа. После активации иконки с зеленым драконом становится доступной CodeBrowser — основная рабочая среда.
Приняв приглашение провести исследования, выбираем опции для файла. Вместо привычного заголовка – структура IMAGE_DOS_HEADER, а не точка входа.
По правую руку расположено декомпиляторное окно, здесь же вкладка Functions. На ней – перечень назначений с их сигнатурами. Далее дело за малым: выбираем любую функцию и работаем.