APK decompilers

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS HackTricks)!

Autres façons de soutenir HackTricks :

Pour plus de détails sur chaque outil, consultez l'article original sur https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

En tant que décompilateur Java GUI pionnier, JD-Gui vous permet d'analyser le code Java dans les fichiers APK. Il est facile à utiliser ; après avoir obtenu l'APK, il vous suffit de l'ouvrir avec JD-Gui pour inspecter le code.

Jadx offre une interface conviviale pour décompiler le code Java des applications Android. Il est recommandé pour sa facilité d'utilisation sur différentes plateformes.

  • Pour lancer l'interface graphique, accédez au répertoire bin et exécutez : jadx-gui

  • Pour une utilisation en ligne de commande, décompilez un APK avec : jadx app.apk

  • Pour spécifier un répertoire de sortie ou ajuster les options de décompilation : jadx app.apk -d <chemin du répertoire de sortie> --no-res --no-src --no-imports

GDA, un outil uniquement disponible pour Windows, offre des fonctionnalités étendues pour l'ingénierie inverse des applications Android. Installez et exécutez GDA sur votre système Windows, puis chargez le fichier APK pour l'analyse.

Avec Bytecode-Viewer, vous pouvez analyser les fichiers APK en utilisant plusieurs décompilateurs. Après le téléchargement, exécutez Bytecode-Viewer, chargez votre APK, et sélectionnez les décompilateurs que vous souhaitez utiliser pour une analyse simultanée.

Enjarify traduit le bytecode Dalvik en bytecode Java, permettant aux outils d'analyse Java d'analyser plus efficacement les applications Android.

  • Pour utiliser Enjarify, exécutez : enjarify app.apk Cela génère l'équivalent en bytecode Java de l'APK fourni.

CFR est capable de décompiler des fonctionnalités Java modernes. Utilisez-le comme suit :

  • Pour une décompilation standard : java -jar ./cfr.jar "app.jar" --outputdir "répertoire_de_sortie"

  • Pour les grands fichiers JAR, ajustez l'allocation de mémoire JVM : java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "répertoire_de_sortie"

Fernflower, un décompilateur analytique, nécessite une construction à partir des sources. Après la construction :

  • Décompilez un fichier JAR : java -jar ./fernflower.jar "app.jar" "répertoire_de_sortie" Ensuite, extrayez les fichiers .java du JAR généré en utilisant unzip.

Krakatau offre un contrôle détaillé sur la décompilation, notamment pour la gestion des bibliothèques externes.

  • Utilisez Krakatau en spécifiant le chemin de la bibliothèque standard et le fichier JAR à décompiler : ./Krakatau/decompile.py -out "répertoire_de_sortie" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

Pour une décompilation simple avec procyon :

  • Décompilez un fichier JAR vers un répertoire spécifié : procyon -jar "app.jar" -o "répertoire_de_sortie"

Dernière mise à jour