Има два полезни инструмента, които генерират 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 прилага някои оптимизации.