
CERT Kaiju — это расширение фреймворка для бинарного анализа для пакета обратной инженерии Ghidra. Этот репозиторий является «зеркалом» — пожалуйста, оформляйте заявки, сообщения об ошибках или запросы на слияние в основном репозитории @CERTCC: https://github.com/certcc/kaiju
CERT Kaiju — это набор инструментов бинарного анализа для Ghidra.
Это реализация на Ghidra/Java некоторых возможностей фреймворка [CERT Pharos Binary Analysis Framework][pharos], особенно инструментов хеширования функций и анализа вредоносного ПО, но со временем ожидается появление новых инструментов и возможностей.
Поскольку это новая разработка, данная реализация пока не обладает полной функциональной совместимостью с исходной реализацией на C++ на базе ROSE; однако переход на Java и Ghidra позволил реализовать некоторые новые возможности, недоступные в оригинальном фреймворке — в частности, улучшенную обработку архитектур, отличных от x86. Поскольку происходит существенная перестройка фреймворка и инструментов, а переход на Java и Ghidra открывает иные возможности, чем реализация на C++, было принято решение использовать новый бренд, чтобы уменьшить путаницу между реализациями при обсуждении различных инструментов и возможностей.
В ближайшем будущем мы планируем поддерживать как оригинальный фреймворк Pharos, так и Kaiju, параллельно, поскольку оба могут предоставлять уникальные функции и возможности.
ПРЕДУПРЕЖДЕНИЕ: как прототип, данный плагин может вызывать множество проблем при оценке хешей функций. Например, в отличие от реализации Pharos, модуль хеширования функций Kaiju создаёт хеши для очень маленьких функций (например, содержащих одну инструкцию, такую как RET), что приводит к гораздо большему количеству случайных коллизий. Поэтому аналитические результаты могут различаться между этим плагином и Pharos fn2hash.
[Готовые пакеты Kaiju][prebuilts] доступны. Просто скачайте ZIP-файл, соответствующий вашей версии Ghidra, и установите согласно инструкциям ниже. Рекомендуется установка через графический интерфейс Ghidra, но также можно вручную распаковать в соответствующую директорию.
CERT Kaiju требует следующие зависимости времени выполнения:
Z3 поставляется предварительно скомпилированным в составе готовых пакетов, либо вы можете собрать Z3 самостоятельно или использовать пакет из вашего дистрибутива Linux.
Запустите Ghidra, в стартовом окне выберите в меню:
File > Install Extension. Нажмите на знак плюса в верхней части окна
расширений, найдите и выберите .zip-файл в проводнике и нажмите OK.
Расширение будет установлено, а рядом с его именем в окне появится
флажок, подтверждающий установку.
Интерфейс предложит перезапустить Ghidra для начала использования расширения. Просто перезапустите, после чего дополнительные функции Kaiju станут доступны для интерактивного использования или в скриптах.
Для работы некоторых функций может потребоваться включение плагинов Kaiju.
Для этого откройте Code Browser, затем перейдите в меню File > Configure.
В появившемся окне нажмите ссылку Configure под иконкой категории
"CERT Kaiju". Во всплывающем окне отобразятся все доступные публичные
плагины Kaiju. Отметьте нужные плагины и нажмите OK. После этого вы
получите доступ к интерактивным функциям плагинов.
Если плагин после включения не стал сразу видимым, его можно найти в меню
Window в Code Browser.
Экспериментальные "альфа" версии будущих инструментов могут быть доступны в категории "Experimental", если вы хотите их протестировать. Однако эти плагины являются экспериментальными, не поддерживаются и не рекомендуются для использования в производственной среде. Мы приветствуем ранние отзывы!
Расширения Ghidra, такие как Kaiju, также могут быть установлены вручную путём распаковки содержимого расширения в соответствующую директорию вашей установки Ghidra. Для получения дополнительной информации см. Руководство по установке Ghidra.
Вы также можете собрать расширение Kaiju напрямую из исходного кода.
См. файл INSTALL.md в корневом каталоге исходников Kaiju.
Инструменты Kaiju могут использоваться как в интерактивном графическом режиме, так и в "безголовом" режиме, более подходящем для пакетной обработки. Некоторые инструменты могут быть доступны только для графического или только для безголового использования, в зависимости от их природы.
Kaiju создаёт интерактивный графический интерфейс (GUI) внутри Ghidra, используя Java Swing и архитектуру плагинов Ghidra.
Большинство инструментов Kaiju на самом деле являются плагинами анализа,
которые запускаются автоматически при выборе опции "Auto Analysis" —
либо при импорте нового исполняемого файла для дизассемблирования, либо
при прямом выборе Analysis > Auto Analyze... в окне Code Browser.
В окне Auto Analyze по умолчанию выбрано несколько плагинов анализа CERT,
но вы можете включать/отключать любые по желанию.
Однако инструменты анализа должны быть запущены до того, как заработают различные GUI-инструменты. В некоторых пограничных случаях может быть полезно запустить Auto Analysis дважды, чтобы убедиться, что все метаданные созданы для корректного разбиения и информации о дизассемблировании, что, в свою очередь, может повлиять на результаты хеширования.
Анализаторы автоматически запускаются во время фазы анализа Ghidra и включают: