αποσυμπίληση DEX σε πηγαίο κώδικα Java

Πώς μπορεί κανείς να αποσυμπιέσει αρχεία Android DEX (VM bytecode) σε αντίστοιχο πηγαίο κώδικα Java;

Λύση

It's easy

Αποκτήστε αυτά τα εργαλεία:

[1) dex2jar για τη μετάφραση αρχείων dex σε αρχεία jar

  1. jd-gui για να δείτε τα αρχεία java στο jar

Ο πηγαίος κώδικας είναι αρκετά ευανάγνωστος καθώς το dex2jar κάνει κάποιες βελτιστοποιήσεις.

Διαδικασία:

Και εδώ'είναι η διαδικασία για το πώς να απομεταγλωττίσετε:

Βήμα 1:

Μετατρέψτε το αρχείο classes.dex στο αρχείο test_apk-debug.apk σε 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

Σημείωση: Στις μηχανές των Windows όλα τα σενάρια .sh αντικαθίστανται από σενάρια .bat.

τεκμηρίωση dex2jar

Βήμα 2:

Ανοίξτε το jar στο JD-GUI

Σχόλια (11)

Θα σας συνιστούσα να πάτε εδώ: https://github.com/JesusFreke/smali

Παρέχει το BAKSMALI, το οποίο είναι ένα εξαιρετικό εργαλείο αντίστροφης μηχανικής για αρχεία DEX. Είναι φτιαγμένο από τον JesusFreke, τον τύπο που δημιούργησε τις διάσημες ROMs για το Android.

Σχόλια (4)

Με το Dedexer, μπορείτε να αποσυναρμολογήσετε το αρχείο .dex σε bytecode dalvik (.ddx).

Η αποσυμπίληση προς Java δεν είναι δυνατή, απ' όσο γνωρίζω.
Μπορείτε να διαβάσετε σχετικά με το dalvik bytecode εδώ.

Σχόλια (2)