Décompilateurs APK

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

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

JD-Gui

En tant que décompilateur Java GUI pionnier, JD-Gui vous permet d'examiner le code Java dans les fichiers APK. Il est simple à utiliser ; après avoir obtenu l'APK, ouvrez-le simplement avec JD-Gui pour inspecter le code.

Jadx

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 <path to output dir> --no-res --no-src --no-imports

GDA-android-reversing-Tool

GDA, un outil uniquement 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 analyse.

Bytecode-Viewer

Avec Bytecode-Viewer, vous pouvez analyser des 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

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

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

  • Pour une décompilation standard : java -jar ./cfr.jar "app.jar" --outputdir "output_directory"
  • Pour de grands fichiers JAR, ajustez l'allocation de mémoire JVM : java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"

Fernflower

Fernflower, un décompilateur analytique, nécessite d'être construit à partir de la source. Après la construction :

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

Krakatau

Krakatau offre un contrôle détaillé sur la décompilation, en particulier pour le traitement 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 "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

procyon

Pour une décompilation simple avec procyon :

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

frida-DEXdump

Cet outil peut être utilisé pour extraire le DEX d'un APK en cours d'exécution en mémoire. Cela aide à contourner l'obfuscation statique qui est supprimée pendant que l'application est exécutée en mémoire.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks