Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
android-reverse-engineering-skill — Décompile les fichiers Android APK/XAPK/JAR/AAR et extrait les API HTTP, les schémas d'authentification et les flux d'appels en utilisant jadx, avec la récupération de noms Kotlin résistante à R8 pour la recherche en sécurité et les tests d'intrusion. | Kitploit
Outils/GitHubGitHub/simoneavogadro/android-reverse-engineering-skill
Sécurité AndroidAnalyse StatiqueAnalyse des VulnérabilitésPentesting d'Applications MobilesRétro-ingénierieTests de Sécurité des APICollecte d'InformationsTests d'IntrusionSécurité Mobile

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Analyse de Binaires
Apprentissage et Éducation
GitHubsimoneavogadro/android-reverse-engineering-skill

android-reverse-engineering-skill

Décompile les fichiers Android APK/XAPK/JAR/AAR et extrait les API HTTP, les schémas d'authentification et les flux d'appels en utilisant jadx, avec la récupération de noms Kotlin résistante à R8 pour la recherche en sécurité et les tests d'intrusion.

Voir le dépôt
6.7k737il y a 2 moisVérifié par Kitploit

Ingénierie inverse Android & Extraction d'API — compétence Claude Code

License: Apache-2.0 GitHub stars GitHub last commit

Une compétence Claude Code qui décompile des fichiers APK/XAPK/JAR/AAR Android et extrait les API HTTP utilisées par l'application — points d'accès Retrofit, appels OkHttp, URLs codées en dur, schémas d'authentification — afin que vous puissiez les documenter et les reproduire sans le code source original.

Prise en charge de première classe pour Kotlin : les applications Android modernes sont en Kotlin/KMP, fortement obscurcies avec R8. Cette compétence récupère les noms de classes Kotlin originaux à partir des métadonnées que R8 ne peut pas supprimer, et extrait les API de Ktor, Apollo (GraphQL) et Koin — pas seulement la pile classique Retrofit/OkHttp. Voir Récupération des noms Kotlin ci-dessous.

Prise en charge Windows / PowerShell (expérimentale) : Les scripts *.ps1 aux côtés des scripts bash sont une contribution récente de la communauté, encore en cours de stabilisation. Pour tout problème, veuillez ouvrir une issue sur ce dépôt (pas sur les forks en amont des contributeurs) : les scripts PowerShell sont maintenus ici par @SimoneAvogadro.

Table des matières

  • Ce qu'il fait
  • Prérequis
  • Installation
  • Utilisation
  • Structure du dépôt
  • Références
  • Remerciements
  • Avertissement
  • Licence

Ce qu'il fait

Prérequis

Requis :

  • Java JDK 17+
  • jadx (CLI)

Facultatif (recommandé) :

  • Vineflower ou Fernflower — meilleure sortie sur du code Java complexe
  • dex2jar — nécessaire pour utiliser Fernflower sur les fichiers APK/DEX

Voir plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md pour des instructions d'installation détaillées.

Installation

Depuis GitHub (recommandé)

Dans Claude Code, exécutez :

root@kitploit:~
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

La compétence sera disponible en permanence dans toutes les sessions futures.

Depuis un clone local

root@kitploit:~
git clone https://github.com/SimoneAvogadro/android-reverse-engineering-skill.git

Puis dans Claude Code :

root@kitploit:~
/plugin marketplace add /path/to/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

Utilisation

Commande slash

root@kitploit:~
/decompile path/to/app.apk

Ceci exécute le flux de travail complet : vérification des dépendances, décompilation et analyse structurelle initiale.

Langage naturel

La compétence s'active sur des phrases comme :

  • "Décompiler cet APK"
  • "Faire de l'ingénierie inverse de cette application Android"
  • "Extraire les points d'accès API de cette application"
  • "Suivre le flux d'appels depuis LoginActivity"
  • "Analyser cette bibliothèque AAR"

Scripts manuels

Les scripts peuvent également être utilisés de manière autonome :

root@kitploit:~
# Vérifier les dépendances
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh

# Installer une dépendance manquante (détection automatique du système d'exploitation et du gestionnaire de paquets)
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

# Empreinte d'un APK/XAPK AVANT la décompilation (triage Phase 0) :
# framework, pile HTTP, niveau d'obscurcissement, bibliothèques natives, SDKs notables
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/fingerprint.sh app.apk

# Décompiler un APK avec jadx (par défaut)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app.apk

# Décompiler un XAPK (extraction automatique et décompilation de chaque APK à l'intérieur)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app-bundle.xapk

# Décompiler avec Fernflower
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine fernflower library.jar

# Exécuter les deux moteurs et comparer
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine both --deobf app.apk

# Trouver les appels API — par défaut une analyse complète sur toutes les piles prises en charge
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

# Piles modernes Kotlin/KMP et extraction résistante à l'obscurcissement
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --ktor    # client Ktor
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   # littéraux de chemins entre guillemets qui survivent à l'inlining de R8

Récupération des noms Kotlin (désobfuscation R8)

La plupart des applications Kotlin/KMP réelles sont livrées via R8, donc les classes décompilées apparaissent comme a.b.c. R8 renomme les symboles JVM mais ne peut pas supprimer les chaînes de métadonnées Kotlin — l'exécution Kotlin (réflexion, coroutines) a besoin des noms complets qualifiés originaux à l'exécution. Cette compétence exploite ces annotations @DebugMetadata / @Metadata pour reconstruire une correspondance obfusquée → réelle des noms de classes. Sur une application typique, elle récupère ~100 % des classes *Repository / *ViewModel / *UseCase / *Impl que vous souhaitez réellement lire.

root@kitploit:~
# 1. Construire la correspondance à partir des sources décompilées
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/recover-kotlin-names.sh output/sources/ output/names/
#    → output/names/mapping.tsv, mapping.json, by_package/

# 2. Interroger : résoudre un nom obfusqué, chercher par nom réel, ou grep
#    les sources chaque occurrence annotée avec son nom de classe récupéré
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ LoginRepository
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ -o a.b.c
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ --grep 'login' output/sources/

Structure du dépôt

root@kitploit:~
android-reverse-engineering-skill/
├── .claude-plugin/
│   └── marketplace.json                    # Catalogue Marketplace
├── plugins/
│   └── android-reverse-engineering/
│       ├── .claude-plugin/
│       │   └── plugin.json                 # Manifeste du plugin
│       ├── skills/
│       │   └── android-reverse-engineering/
│       │       ├── SKILL.md                # Flux de travail principal (Phase 0–5)
│       │       ├── references/
│       │       │   ├── setup-guide.md
│       │       │   ├── jadx-usage.md
│       │       │   ├── fernflower-usage.md
│       │       │   ├── api-extraction-patterns.md
│       │       │   ├── kotlin-name-recovery.md
│       │       │   ├── third_party_hosts.txt   # Liste de blocage pour le regroupement première/tiere partie
│       │       │   └── call-flow-analysis.md
│       │       └── scripts/
│       │           ├── check-deps.sh       # Bash
│       │           ├── check-deps.ps1      # PowerShell
│       │           ├── install-dep.sh
│       │           ├── install-dep.ps1
│       │           ├── decompile.sh
│       │           ├── decompile.ps1
│       │           ├── fingerprint.sh          # Phase 0 — triage avant décompilation
│       │           ├── recover-kotlin-names.sh # R8 → noms de classes Kotlin réels
│       │           ├── lookup-name.sh          # interroger la correspondance des noms récupérés
│       │           ├── find-api-calls.sh
│       │           └── find-api-calls.ps1
│       └── commands/
│           └── decompile.md                # Commande slash /decompile
├── LICENSE
└── README.md

Références

  • jadx — Décompilateur Dex vers Java
  • Fernflower — Décompilateur analytique JetBrains
  • Vineflower — Fork communautaire de Fernflower
  • dex2jar — Convertisseur DEX vers JAR
  • apktool — Décodeur de ressources Android

Remerciements

Merci aux contributeurs qui ont façonné cette compétence :

  • @tajchert — Empreinte Phase 0, récupération de noms Kotlin résistante à R8 (recover-kotlin-names.sh, lookup-name.sh), et motifs d'extraction Ktor / Apollo / Koin / HMAC (#16)
  • @philjn — Prise en charge native Windows / PowerShell (check-deps.ps1, install-dep.ps1, decompile.ps1, find-api-calls.ps1) et détection d'APK divisés/groupés dans decompile.sh (#8)
  • @txhno — Migration vers le fork maintenu ThexXTURBOXx/dex2jar (#12)
  • @muqiao215 — Gestion partielle des échecs de décompilation, protection contre le délai d'attente de Fernflower, répertoire d'artefacts intermédiaires (#10)
  • @kevinaimonster — Localisation chinoise (mots-clés de découverte SKILL.md) (#4)

Avertissement

Ce plugin est fourni strictement à des fins légitimes, y compris mais sans s'y limiter :

  • Recherche en sécurité et tests de pénétration autorisés
  • Analyse d'interopérabilité permise par la loi applicable (par exemple, Directive européenne 2009/24/CE, US DMCA §1201(f))
  • Analyse de logiciels malveillants et réponse aux incidents
  • Utilisation éducative et compétitions CTF

Vous êtes seul responsable de vous assurer que votre utilisation de cet outil est conforme à toutes les lois, réglementations et conditions d'utilisation applicables. L'ingénierie inverse non autorisée de logiciels que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation d'analyser peut violer les lois sur la propriété intellectuelle et les lois sur la fraude informatique dans votre juridiction.

Les auteurs déclinent toute responsabilité en cas d'utilisation abusive de cet outil.

Licence

Apache 2.0 — voir LICENSE

Télécharger l’outil
CapacitéDescription
Empreinte d'abord (Phase 0)Trier un APK/XAPK en quelques secondes — détecter le framework (Flutter / React Native / Cordova / Xamarin / natif-Kotlin), la pile HTTP, le niveau d'obscurcissement et les bibliothèques natives avant de consacrer du temps à une décompilation complète
DécompilerFichiers APK, XAPK, JAR et AAR avec jadx et Fernflower/Vineflower (moteur unique ou comparaison côte à côte)
Récupérer les noms KotlinReconstruire les noms de classes *Repository / *ViewModel / *UseCase originaux à partir de binaires obscurcis par R8 en utilisant les métadonnées Kotlin que R8 ne peut pas supprimer
Extraire les APIRetrofit, OkHttp, Volley et les piles modernes Kotlin/KMP : Ktor, Apollo (GraphQL), Koin DI — points d'accès, URLs codées en dur, en-têtes d'authentification, jetons et schémas de signature de requêtes HMAC
Tracer les flux d'appelsDes Activities/Fragments à travers les ViewModels et les dépôts jusqu'aux appels HTTP
Analyser la structureManifeste, paquets, motifs architecturaux
Gérer l'obscurcissementExtraction de chemins/URL résistante à R8 ainsi que des stratégies pour naviguer dans les résultats ProGuard/R8