Найти тему

Исследование и взлом приложений для Android

Android application reverse engineering — хорошее введение в реверс-инжиниринг приложений для Android на примере простого CrackMe, которое показывает окно с предложением ввести пароль. Пароль сравнивается с зашифрованным паролем внутри предложения, и, если они совпадают, на экране появляется сообщение об успешном взломе.

Автор предлагает четыре способа взломать CrackMe.

  • Dex2jar, JD-GUI и Frida. Метод заключается в том, чтобы найти в декомпилированном коде приложения ID нужной зашифрованной строки, затем с помощью Frida внедрить в приложение гаджет, написанный на JS. Гаджет вытащит строку, дешифрует ее с помощью функции дешифровки самого приложения и передаст серверу Frida, работающему на ПК.
  • Xposed, Inspeckage и APKStudio. С помощью Inspeckage можно отлавливать обращения к SQLite, функциям шифрования и доступа к памяти устройства. Иногда этой информации достаточно, чтобы перехватить расшифрованную строку, но в данном случае пришлось также модифицировать само приложение с помощью APKStudio (код дешифровки в нем был, но приложение не вызывало его).
  • Патчинг с помощью APKStudio. Самый примитивный метод. Достаточно дизассемблировать приложение и поменять в нем одну строку, чтобы CrackMe принимал любую строку как правильную.
  • Статический анализ с помощью ByteCodeViewer. Вместо того чтобы запускать или модифицировать приложение, его можно изучить, извлечь из него зашифрованную строку, а также декомпилировать код расшифровки. Затем достаточно создать новое приложение, вставить в него код дешифровки и скормить ему зашифрованную строку. Вуаля, приложение выводит на экран оригинальную строку.