Маючи файл .apk, чи можна отримати його вихідний код?
Маючи файл .apk, чи можна отримати його вихідний код?
Відповіді:
Навіть якщо ProGuard був використаний, ви все одно можете отримати цікаву інформацію. Ось питання StackOverflow із детальним поясненням: Android: Отримання вихідного коду з файлу APK . Відео YouTube з докладним посібником . І запис у блозі про це: Як отримати вихідний код з файлу Android APK .
Якщо вам пощастить, і ваш .apk
файл не був захищений Proguard або аналогом, ви можете скористатися інструментом APK . Це інструмент для зворотного проектування сторонніх, закритих, бінарних додатків для Android.
З однієї із вікі спільноти Парнкул Гарг в SO :
Порядок розшифровки файлів .apk, покроковий метод:
Створіть нову папку та скопіюйте файл .apk, який потрібно декодувати.
Тепер перейменуйте розширення цього .apk-файлу в .zip (наприклад, перейменуйте з filename.apk в filename.zip) і збережіть його. Тепер ви можете отримати доступ до файлів class.dex і т. Д. На цьому етапі ви можете бачити малюнки, але не XML і Java файли, тому продовжуйте
Тепер витягніть цей .zip-файл у тій самій папці (або НОВА папка).
Завантажте dex2jar і дістаньте його до тієї ж папки (або НОВОЇ папки).
Перемістіть файл class.dex у папку dex2jar.
Тепер відкрийте командний рядок та змініть каталог у цю папку (або НОВУ папку). Потім напишіть d2j-dex2jar classes.dex
і натисніть Enter. Тепер у вас є файл class.dex.dex2jar в тій же папці.
Завантажте Java-декомпілятор , двічі клацніть на jd-gui, натисніть на відкритий файл та відкрийте файл Class.dex.dex2jar з цієї папки: тепер ви отримуєте файли класів.
Збережіть усі ці файли класу (У jd-gui натисніть Файл -> Зберегти всі джерела) за назвою src. На цьому етапі ви отримуєте джерело java, але файли .xml все ще не читаються, тому продовжуйте.
Тепер відкрийте ще одну нову папку
Помістіть у .apk файл, який потрібно розшифрувати
Завантажте останню версію вікна встановлення apktool AND apktool (обидві можна завантажити з того самого посилання) і помістіть їх у ту саму папку
Завантажте Framework-res.apk і покладіть його в ту саму папку (Не всім apk -файлам потрібен цей файл, але це не зашкодить)
Відкрийте вікно команд
Перейдіть до кореневого каталогу APKtool і введіть таку команду:
apktool if framework-res.apk
apktool d myApp.apk
(де myApp.apk позначає ім'я файлу, яке потрібно декодувати)
тепер ви отримуєте папку файлів у цій папці і можете легко читати файли xml apk.
Це не будь-який крок, просто скопіюйте вміст обох папок (в даному випадку і нову папку) в одну
і насолоджуйтесь вихідним кодом ...