décompilation de DEX en code source Java

Comment décompiler les fichiers Android DEX (VM bytecode) en code source Java correspondant ?

Solution

C'est facile

Obtenez ces outils :

  1. [dex2jar][1] pour convertir les fichiers dex en fichiers jar.

  2. [jd-gui][2] pour visualiser les fichiers java dans le jar.

Le code source est assez lisible car dex2jar fait quelques optimisations.

Procédure :

Voici la procédure à suivre pour décompiler :

Step 1 :

Convertir classes.dex dans test_apk-debug.apk en test_apk-debug_dex2jar.jar

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

Note: Sur les machines Windows, tous les scripts .sh sont remplacés par des scripts .bat.

[documentation dex2jar] [3]

Étape 2 :

Ouvrir le jar dans JD-GUI

!La source décompilée][4]

[1] : http://code.google.com/p/dex2jar/ [2] : http://jd.benow.ca/ [3] : http://code.google.com/p/dex2jar/wiki/ModifyApkWithDexTool [4] : http://i.stack.imgur.com/PWJIX.png

Commentaires (11)

En fait, je vous recommande d'aller ici : [https://github.com/JesusFreke/smali] [1]

Il fournit BAKSMALI, qui est un excellent outil de rétro-ingénierie pour les fichiers DEX. Il est fait par JesusFreke, le gars qui a créé les fameuses ROMs pour Android.

[1] : https://github.com/JesusFreke/smali

Commentaires (4)

Avec [Dedexer][1], vous pouvez désassembler le fichier .dex en bytecode dalvik (.ddx).

La décompilation vers Java n'est pas possible pour autant que je sache.
Vous pouvez lire sur le bytecode dalvik [ici][2].

[1] : http://dedexer.sourceforge.net/ [2] : http://www.dalvikvm.com/

Commentaires (2)