Деобфускация зловредного приложения с dex-oracle

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER
Регистрация
7 Фев 2020
Сообщения
525
Реакции
98
Репутация
147

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

— статья о деобфускации зловредного приложения с помощью модифицированной версии

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

.

Автор описывает историю разбора зловреда, повсеместно использующего рефлексию для вызова методов, а также метод скрытия строк indexed string lookup.

Суть последнего заключается в том, чтобы зашифровать все строки в приложении, а затем получать доступ к ним с помощью специальной функции, которая будет расшифровывать и возвращать строку с указанным ID.

Чтобы разобраться в работе такого приложения, необходимо расшифровать все строки. А сделать это можно двумя способами:

  1. Проанализировать код дешифратора (который наверняка сильно обфусцирован и запутан).
  2. Запустить код дешифратора извне.
Использовать второй способ можно, создав приложение-обертку, которое загрузит DEX-файл зловредного приложения во время работы и вызовет его методы с помощью рефлексии.

Но есть еще один способ — деобфускатор dex-oracle, который запускает код в виртуальной машине и выдает на выходе деобфусцированный код (где те же обращения к функции дешифровки строк заменены на настоящие строки).

Проблема автора состояла в том, что dex-oracle ему не помог. Поэтому половина статьи посвящена тому, как работает dex-oracle и как его модифицировать, чтобы научить нужным трюкам.


До деобфускации…


…и после деобфускации
 
Сверху