Кто бы что не говорил, но релиз Ghidra "встряхнул" тихую заводь программ для reverse engineering. Различные долгожданные фичи (здравствуй python3!) стали появляться в том или ином инструменте. На данный момент чаще Ghidra используют ради декомпилятора, который реализован в виде отдельной программы, к тому же написанной на плюсах, и использующий промежуточный код, что позволяет реверсеру самому добавить поддержку декомпилятора для нужной ему архитектуры, описав ее на Sleigh. Такой подход не нов, к примеру различные PoC, использующие, LLVM IR или проект
radeco от разработчиков фреймворка radare2, но такие декомпиляторы пока не готовы для искушенного клавишей F5 пользователя. Поэтому не мудрено, что, считай одновременно, было опубликовано несколько решений, добавляющих поддержку декомпилятора от Ghidra в популярное ревереское ПО:
- Команда Cisco Talos
представила два инструмента: GhIDA и Ghidraaas.
GhIDA - IDApython плагин для IDA Pro. Для работы требуется локально установленная Ghidra (а соотвественно и Java) или запущенный сервис Ghidraaas.
Ghidraaas - небольшой веб-сервер, который проводит анализ присланного семпла и выдает список функций с декомпилированным кодом по средством REST API. Обернут в docker.
- Разработчики фреймворка
Radare2 в рамках конференции
R2con 2019 (о которой мы расскажем чуть позже) представили плагин
r2ghidra-dec, который нацелен именно на работу с декомпилятором и не требует установленной Ghidra, что значительно ускоряет анализ. Особенно это пригодится, когда требуется быстро посмотреть отдельные функции или вы просто фанат консоли. Помимо этого, теперь GUI для radare2 -
Cutter, начиная с 1.9 версии, поставляется сразу с поддержкой этого декомпилятора и данный функционал можно попробовать уже буквально в пару кликов.