
Инструмент нечёткого сравнения для деобфускации Android APK-файлов путём идентификации переименованных функций между версиями, создания файлов сопоставления и интерактивных HTML-отчётов для анализа вредоносного ПО и уязвимостей.
🤖 Obfu[DE]scate: Инструмент для деобфускации и сравнения Android APK. 📱
Obfu[DE]scate — это инструмент на Python, предназначенный для упрощения процесса деобфускации и сравнения двух версий Android APK — даже если функции были переименованы в процессе обфускации. Благодаря логике нечёткого сравнения Obfu[DE]scate может определять сходства между функциями и помогать выявлять изменения между версиями APK.
Начать работу с Obfu[DE]scate легко! Выполните следующие шаги:
pip install -r REQUIREMENTS.txt
Obfu[DE]scate был протестирован на Windows 11, но должен работать и на других системах.
Obfu[DE]scate предоставляет несколько параметров командной строки для настройки поведения:
Чтобы сравнить два APK-файла, просто запустите Obfu[DE]scate следующей командой:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
В приведённом примере Obfu[DE]scate проверит все функции в APK old_example.apk по пути класса com.example.path и сравнит их со всеми функциями, найденными по тому же пути в new_example.apk.
Obfu[DE]scate создаёт два выходных файла: файл сопоставления в формате списка, разделённого переводами строк, и интерактивный HTML-файл. Эти выходные файлы включают:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
Obfu[DE]scate — это проект с открытым исходным кодом, и он приветствует вклад сообщества. Если вы хотите внести свой вклад в Obfu[DE]scate, пожалуйста, следуйте этим рекомендациям:
Obfu[DE]scate следует Кодексу поведения Contributor Covenant. Пожалуйста, обязательно ознакомьтесь и соблюдайте этот кодекс поведения при участии в Obfu[DE]scate.
Если вы столкнулись с ошибкой или хотите предложить новую функцию, откройте issue в репозитории GitHub. Пожалуйста, предоставьте как можно больше подробностей, включая шаги для воспроизведения проблемы или чёткое описание предлагаемой функции. Ваш отзыв ценен и поможет улучшить Obfu[DE]scate для всех.
Этот инструмент не работал бы без APKTool! Во-вторых, многие примеры в этом README используют приложение Chess.com в качестве основы, ознакомьтесь с ним здесь.
| Сокращение | Параметр | Описание | Обязательно |
|---|
| -a1 | apk_file_path_1 | Путь к исходному APK. Это APK, с которым будет сравниваться второй APK (т.е. старая версия APK). | Да |
| -a2 | apk_file_path_2 | Путь к новому APK. В выводе будут показаны изменения между APK1 и этим APK. | Да |
| -cp | class_path | Путь в обратной нотации домена, который будет использоваться для фильтрации проверяемых функций (например, укажите com.example.class, чтобы сравнивать только функции в этом пути). | Нет |
| -o | output_dir | Каталог для сохранения выходного файла сопоставления, HTML и декомпилированных APK. | Нет |
| -apktool | apk_tool_path | Если APKTool отсутствует в PATH, используйте этот параметр, чтобы указать ObfuDeScate, где находится APKTool. | Нет |