dekompilering af DEX til Java-kildekode

Hvordan kan man dekompilere Android DEX-filer (VM bytecode) til tilsvarende Java-kildekode?

Løsning

Det er nemt

Få disse værktøjer:

  1. dex2jar til at oversætte dex-filer til jar-filer

  2. jd-gui til at se java-filerne i jar'en

Kildekoden er ganske læsbar, da dex2jar foretager nogle optimeringer.

Procedure:

Og her'er proceduren for, hvordan man dekompilerer:

Trin 1:

Konverter classes.dex i test_apk-debug.apk til 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: I Windows-maskinerne er alle .sh-scripts erstattet af .bat-scripts

dex2jar dokumentation

Trin 2:

Åbn jar'en i JD-GUI

Kommentarer (11)

Jeg vil faktisk anbefale at tage herhen: https://github.com/JesusFreke/smali

Den indeholder BAKSMALI, som er et fremragende reverse-engineering-værktøj til DEX-filer. Det er lavet af JesusFreke, ham der har lavet de berømte ROMs til Android.

Kommentarer (4)

Med Dedexer kan du disassemblere filen .dex til dalvik-bytekode (.ddx).

Dekompilering til Java er ikke mulig så vidt jeg ved.
Du kan læse om dalvik bytecode her.

Kommentarer (2)