Υπάρχουν δύο χρήσιμα εργαλεία που θα δημιουργήσουν κώδικα Java (πρόχειρο αλλά αρκετά καλό) από ένα άγνωστο αρχείο APK.
Κατεβάστε το εργαλείο dex2jar από το dex2jar.
Χρησιμοποιήστε το εργαλείο για να μετατρέψετε το αρχείο APK σε JAR:
$ d2j-dex2jar.bat demo.apk
dex2jar demo.apk -> ./demo-dex2jar.jar
Μόλις δημιουργηθεί το αρχείο JAR, χρησιμοποιήστε το JD-GUI για να ανοίξετε το αρχείο JAR. Θα δείτε τα αρχεία Java.
Η έξοδος θα είναι παρόμοια με:
Όχι ακριβώς. Υπάρχουν αρκετές σουίτες αποσυμπιεστών/αποσυμπιεστών dex εκεί έξω όπως το smali, ή το dex2jar που θα δημιουργήσουν έξοδο ημι-αναγνώσιμη από τον άνθρωπο (στην περίπτωση του dex2jar, μπορείτε να πάρετε κώδικα java μέσω της χρήσης κάτι σαν το JD-GUI αλλά η διαδικασία δεν είναι τέλεια και είναι πολύ απίθανο να μπορέσετε να αναδημιουργήσετε 100% τον πηγαίο σας κώδικα. Ωστόσο, θα μπορούσε δυνητικά να σας δώσει ένα μέρος για να ξεκινήσετε την ανοικοδόμηση του δέντρου πηγής σας.
Ναι, μπορείτε να πάρετε πίσω το έργο σας. Απλά μετονομάστε το αρχείο yourproject.apk
σε yourproject.zip
, και θα λάβετε όλα τα αρχεία μέσα σε αυτό το αρχείο ZIP. Αλλάζουμε την επέκταση του αρχείου από .apk σε .zip. Από αυτό το αρχείο ZIP, εξάγετε το αρχείο classes.dex
και αποσυμπιέστε το με τον ακόλουθο τρόπο.
Αρχικά, χρειάζεστε ένα εργαλείο για να εξαγάγετε όλες τις (μεταγλωττισμένες) κλάσεις στο DEX σε ένα JAR. Υπάρχει ένα που ονομάζεται dex2jar, το οποίο έχει φτιαχτεί από έναν Κινέζο φοιτητή.
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το JD-GUI για να αποσυμπιέσετε τις κλάσεις στο JAR σε πηγαίο κώδικα. Ο πηγαίος κώδικας που προκύπτει θα πρέπει να είναι αρκετά ευανάγνωστος, καθώς το dex2jar εφαρμόζει κάποιες βελτιστοποιήσεις.