Dex-oracle for Malware Deobfuscation — статья о деобфускации зловредного приложения с помощью модифицированной версии dex-oracle.
Автор описывает историю разбора зловреда, повсеместно использующего рефлексию для вызова методов, а также метод скрытия строк indexed string lookup.
Суть последнего заключается в том, чтобы зашифровать все строки в приложении, а затем получать доступ к ним с помощью специальной функции, которая будет расшифровывать и возвращать строку с указанным ID.
Чтобы разобраться в работе такого приложения, необходимо расшифровать все строки. А сделать это можно двумя способами:
- Проанализировать код дешифратора (который наверняка сильно обфусцирован и запутан).
- Запустить код дешифратора извне.
Использовать второй способ можно, создав приложение-обертку, которое загрузит DEX-файл зловредного приложения во время работы и вызовет его методы с помощью рефлексии.
Но есть еще один способ — деобфускатор dex-oracle, который запускает код в виртуальной машине и выдает на выходе деобфусцированный код (где те же обращения к функции дешифровки строк заменены на настоящие строки).
Проблема автора состояла в том, что dex-oracle ему не помог. Поэтому половина статьи посвящена тому, как работает dex-oracle и как его модифицировать, чтобы научить нужным трюкам.