tags: windows - tool
Обзор декомпилятора GJoy Dex Analysizer
Intro
Недавно в твитере увидел новость о выходе новой версии андроид декомпилятора GJoy Dex Analysizer (далее просто GDA). Меня заинтересовали его возможности и я никогда о нем ранее не слышал.
Особенности и плюсы вот такие
- Написан на С++, не на java как другие.
- Не требует установки, просто один EXE-шник
- Поддерживает форматы APK, DEX, ODEX, oat
- Весит всего 2 мегабайта
- Определяет кросс ссылки для строк, классов, методов, полей
- Поиск по строкам, классам, методам, полям
- Деобфускатор
- Встроенный автоматический анализ малвари
- Бесплатный
И еще много чего еще! Более полный список фич
Interactive operation: 1.cross-references for strings, classes, methods and fields; 2.searching for strings, classes methods and fields; 3.comments for java code; 4.rename for methods,fields and classes; 5.save the analysis results in gda db file. ... Utilities for Assisted Analysis: 1.extracting DEX from ODEX; 2.extracting DEX from OAT; 3.XML Decoder; 4.algorithm tool; 5.device memory dump; ... New features: 1.Brand new dalvik decompiler in c++ with friendly GUI; 2.Support python script 3.packers Recognition; 4.Multi-DEX supporting; 5.making and loading signature of the method 6.Malicious Behavior Scanning by API chains; 7.taint analysis to preview the behavior of variables; 8.taint analysis to trace the path of variables; 9.de-obfuscate; 10.API view with x-ref; 11.Association of permissions with modules; ...
Минусы
- Только под винду.
- Только статический анализ
Решил сделать на него обзор, но просто обзор не очень интересно, поэтому я покажу его возможности на примере статического анализа андроид трояна.
В вики GDA есть свое описание функционала, но я его намеренно не читал, чтобы разобраться самостоятельно. Прочитал после написания статьи и увидел, что описание строится тоже на основе анализа малвари. Вот такое вот совпадение
Для поиска малвари, как обычно зашел на Virusshare.com, ввел в поиске “apk” и скачал первый попавшийся сэмпл. Сэмпл впервые засветился на вирустотале 28 июля 2019 года.
Что интересно, на вирустотале было всего два детекта.
Прежде чем провести статически анализ, я решил установить малварь и посмотреть, что это вообще такое. Устанавливается она под названием “Lovely Doll Live Wallpaper”.
Запускаем приложение и видим очень милое лицо девушки (какой милый троян!), с единственной кнопкой “Set Wallpaper”.
Жмем на эту кнопку и нам еще раз предлагают установить обои
После этого обои все таки устанавливаются
Теперь перейдем к нашей тулзе GDA. Открываем apk и видим основной интерфейс, в котором нам демонстируют DEX Header и разрешения
Можно навести на каждый элемент заголовка DEX и получить описание, что это такое. Про формат DEX и что значат эти байты можно прочитать тут
Слева в интерфейсе находятся основные пункты
Давайте покликаем на каждый. Первым идет пункт AllStrings
. Как видно из названия, это список всех строк в apk.
Можно произвести поиск по строкам, но не поддерживаются регулярные выражения, что очень плохо. Так как мы анализируем малварь, давайте узнаем, есть ли какая-нибудь работа с БД. Малварь создает таблицу messages
, уже интересно, почему она так называется, ведь это всего лишь установщик обоев. Причем даже не обоев, а только одного изображения, без права выбора (хоть и милого).
Можно кликнуть по ссылке на любую строку и откроется ее расположение в самом файле, как hex view в IDA
Пункт AppString
не очень понятен, в моем случае вывод идентичен AllString
. Пункт AllApi
перечисляет все методы, которые юзаются в приложении. Интересно зачем установщику обоев данные нашей сим карты и оператора.
Пункт AndroidManifest
собственно его нам и показывает. Обратите внимание, внизу есть кнопочки, которые покажут отдельно ресиверы, сервисы и т.д.. Это ОЧЕНЬ удобно
Кликаем по permission и видим разрешения на чтение и отправку SMS. Это очень странно.
Из списка сервисов, видим один мутный, под названием PaymentStatusReceiver
. Что за оплата непонятно, ведь в приложении нет больше НИЧЕГО, кроме одной кнопки. Также есть сервис MpSMSService
, которые будет принимать наши смски.
HexView
- просто показывает сырую информацию в хексе
Тут мы добрались до двух самых крутых фич GDA! Это MalScan
и AccessPermission
. Именно их мне не хватало так долго!
MalScan
- сканирует приложение на предмет мутных действий.
Круто это еще и тем, что нам говорят, в каком конкретно классе это происходит. Например, кликнув по классу в категории Sending Message
, нам откроется его код. Здесь происходит отправка SMS (sendTextMessage()
).
AccessPermission
- показывает список разрешений и где в коде они используются. Очень полезная фича. Например, видите что приложение просит доступ к микрофону и тут же просматриваете что она с этим делает
В окне с кодом можно переключаться между java/smali
Есть встроенный шифровщик/расшифровщик. Очень удобно, если вы нашли в apk ключ и надо быстро проверить его правильность.
Можно выбрать любой метод и посмотреть его Similarity
- список похожих методов во всем коде, в процентном соотношении
Можно подключиться к девайсу в рантайме и посмотреть процессы. На этом все функции связанные с рантаймом заканчиваются. На клике по Open Process
GDA у меня всегда крашился =*(
Работу деобфускатора проверить не удалось. Надеюсь все дело в конкретном сэмлпе.
Вывод
GDA прекрасно подходит для первоначального статического анализа. Есть даже простенький Malware Scanner, ссылки на использование разрешений и кликабельный интерфейс.
Вверх