
Декомпилирует APK/XAPK/JAR/AAR файлы Android и извлекает HTTP API, шаблоны аутентификации и потоки вызовов с использованием jadx, с устойчивым к R8 восстановлением имен Kotlin для исследований безопасности и тестирования на проникновение.
Навык Claude Code, который декомпилирует файлы Android APK/XAPK/JAR/AAR и извлекает HTTP API, используемые приложением — конечные точки Retrofit, вызовы OkHttp, жестко заданные URL, паттерны аутентификации — чтобы вы могли документировать и воспроизводить их без исходного кода.
Полноценная поддержка Kotlin: современные Android-приложения написаны на Kotlin/KMP и сильно обфусцированы с помощью R8. Этот навык восстанавливает оригинальные имена классов Kotlin из метаданных, которые R8 не может удалить, и извлекает API из Ktor, Apollo (GraphQL) и Koin — не только из классического стека Retrofit/OkHttp. См. восстановление имен Kotlin ниже.
Поддержка Windows / PowerShell (экспериментально): скрипты
*.ps1вместе с bash-версиями являются недавним вкладом сообщества, который всё ещё стабилизируется. По любым вопросам создавайте issue в этом репозитории (не в вышестоящих форках контрибьюторов): скрипты PowerShell сопровождаются здесь @SimoneAvogadro.
| Возможность | Описание |
|---|---|
| Первичная идентификация (Фаза 0) | Быстрая оценка APK/XAPK за секунды — определяет фреймворк (Flutter / React Native / Cordova / Xamarin / нативный Kotlin), HTTP-стек, уровень обфускации и нативные библиотеки перед тем, как тратить время на полную декомпиляцию |
| Декомпиляция | APK, XAPK, JAR и AAR файлы с использованием jadx и Fernflower/Vineflower (один движок или сравнение бок о бок) |
| Восстановление имен Kotlin | Восстанавливает оригинальные имена классов *Repository / *ViewModel / *UseCase из бинарников, обфусцированных R8, используя метаданные Kotlin, которые R8 не может удалить |
| Извлечение API | Retrofit, OkHttp, Volley и современные стеки Kotlin/KMP: Ktor, Apollo (GraphQL), Koin DI — конечные точки, жестко заданные URL, заголовки аутентификации, токены и схемы подписи запросов HMAC |
| Трассировка потоков вызовов | От Activities/Fragments через ViewModels и репозитории до HTTP-вызовов |
| Анализ структуры | Манифест, пакеты, архитектурные паттерны |
| Обработка обфускации | Извлечение путей/URL, устойчивых к R8, а также стратегии навигации по выводу ProGuard/R8 |
Обязательно:
Опционально (рекомендуется):
Подробные инструкции по установке см. в plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md.
Внутри Claude Code выполните:
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill
Навык будет постоянно доступен во всех будущих сессиях.
git clone https://github.com/SimoneAvogadro/android-reverse-engineering-skill.git
Затем в Claude Code:
/plugin marketplace add /path/to/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill
/decompile path/to/app.apk
Это запускает полный рабочий процесс: проверка зависимостей, декомпиляция и начальный анализ структуры.
Навык активируется по фразам вроде:
Скрипты также можно использовать самостоятельно:
# Check dependencies
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh
# Install a missing dependency (auto-detects OS and package manager)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh jadx
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh vineflower
# Fingerprint an APK/XAPK BEFORE decompiling (Phase 0 triage):
# framework, HTTP stack, obfuscation level, native libs, notable SDKs
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/fingerprint.sh app.apk
# Decompile APK with jadx (default)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app.apk
# Decompile XAPK (auto-extracts and decompiles each APK inside)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app-bundle.xapk
# Decompile with Fernflower
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine fernflower library.jar
# Run both engines and compare
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine both --deobf app.apk
# Find API calls — defaults to a full scan across every supported stack
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --retrofit
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --urls
# Modern Kotlin/KMP stacks and obfuscation-resistant extraction
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --ktor # Ktor client
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --apollo # Apollo / GraphQL
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --paths # quoted path literals that survive R8 inlining
Большинство реальных Kotlin/KMP-приложений проходят через R8, поэтому декомпилированные классы выглядят как a.b.c. R8 переименовывает JVM-символы, но не может удалить строки метаданных Kotlin — среде выполнения Kotlin (рефлексия, корутины) нужны оригинальные полные имена во время выполнения. Этот навык извлекает аннотации @DebugMetadata / @Metadata, чтобы построить карту имён классов обфусцированное → реальное. На типичном приложении восстанавливается ~100 % классов *Repository / *ViewModel / *UseCase / *Impl, которые вам действительно нужно читать.