Обратное проектирование из файла APK в проект

Я случайно удалил свой проект из Eclipse, и все, что у меня осталось, это APK, который я передал на свой телефон. Есть ли способ обратить вспять процесс экспорта приложения в файл .apk, чтобы вернуть проект?

Ответ 1

Есть два полезных инструмента, которые будут генерировать код Java (грубый, но достаточно хороший) из неизвестного файла APK.

  1. Загрузите инструмент dex2jar из dex2jar.
  2. Используйте инструмент для конвертирования APK файла в JAR:

    $ d2j-dex2jar.bat demo.apk
    dex2jar demo.apk -> ./demo-dex2jar.jar
    
  3. Как только файл JAR сгенерирован, используйте JD-GUI, чтобы открыть файл JAR. Вы увидите файлы Java.

Вывод будет похож на:

JD GUI

Ответ 2

Прежде всего, я рекомендую this видео, возможно, это очищает все ваши сомнения

Если нет, пожалуйста, пройдите

Procedure for decoding.apk files, step-by-step method:

Step 1:

Создайте новую папку и поместите в нее файл .apk (который вы хотите декодировать). Теперь переименуйте расширение этого файла .apk в .zip (например: переименуйте из filename.apk в filename.zip) и сохраните его.

Если проблемы при конвертации в .zip, пожалуйста, обратитесь по link

После получения файла .zip вы получаете файлы classes.dex и т.д. На этом этапе вы можете видеть нарисованные, но не файлы XML и Java, поэтому продолжайте. Если вы не видите расширения, проверьте настройки

Step 2:

Теперь распакуйте этот ZIP файл в той же папке. Теперь скачайте dex2jar по этой link

и распакуйте его в ту же папку. Теперь откройте командную строку и перейдите в эту папку.

Затем напишите dex2jar classes.dex и нажмите ввод. Теперь вы получаете файл classes.dex.dex2jar в той же папке.

Тогда скачайте Java-декомпилятор

А теперь дважды щелкните по jd-gui и щелкните по открытому файлу. Затем откройте файл classes.dex.dex2jar из этой папки. Теперь вы получаете файлы классов и сохраняете все эти файлы классов (нажмите на файл, затем нажмите "сохранить все источники" в jd-gui) по имени src. Распакуйте этот zip файл (classes_dex2jar.src.zip) и вы получите все java файлы приложения.

На этом этапе вы получаете исходный код Java, но XML файлы по-прежнему не читаются, поэтому продолжайте.

Step 3:

Теперь откройте еще одну новую папку и поместите эти файлы

  1. положить файл .apk, который вы хотите декодировать

  2. скачать Apktool для windows v1.x и Apktool

установить окно с помощью Google и положить в ту же папку

  1. Скачайте файл framework-res.apk с помощью Google и поместите в одну папку (Не всем apk файлу нужен файл framework-res.apk)

  2. Откройте командное окно

  3. Перейдите в корневой каталог APKtool и введите следующую команду: apktool if framework-res.apk.

Приведенная выше команда должна привести к Framework installed...

  1. apktool d "appName".apk("appName" обозначает приложение, которое вы хотите декодировать), теперь вы получаете папку с файлами в этой папке, и теперь вы также можете легко читать XML файлы.

Step 4: Наконец, мы получили res/ а также java-код проекта, который является нашей целью при запуске.

PS Если вы не можете получить папку res с помощью описанных выше шагов, пожалуйста, установите новый apktool

  • Java 1.7 установлена? Установите Apktool 2.x
  • Java 1.6 или выше установлена? Установите Apktool 1.x

Enjoy and happy coding

Ответ 3

Нет программного обеспечения и не слишком много шагов..

Просто загрузите свой APK и получите все ресурсы с этого сайта.

https://www.apkdecompilers.com/

Этот веб-сайт декомпилирует код, встроенный в APK файлы, и извлекает все остальные ресурсы из файла.

примечание: я декомпилирую свой APK файл и получаю код в течение одной минуты с этого сайта

Обновление 1:

Я нашел другой сайт декомпилятора онлайн,

http://www.javadecompilers.com/apk/ - Не работает постоянно с просьбой о блокировке всплывающих окон

Обновление 2:

Я нашел приложение apk decompiler в магазине игр,

https://play.google.com/store/apps/details?id=com.njlabs.showjava

Мы можем декомпилировать файлы apk в нашем телефоне Android. а также мы можем просматривать файлы Java и XML в этом приложении

Обновление 3:

Мы можем использовать другую опцию Анализировать функцию APK из версии Android Studio 2.2

Построить → Анализировать APK → Выбрать свой APK → это даст результаты

enter image description here

Ответ 5

Не совсем. Существует ряд дезассемблеров/декомпиляторов dex таких как smali, или dex2jar, который будет генерировать полупрозрачный вывод (в случае dex2jar вы можете получить Java-код с помощью чего-то вроде JD- GUI, но этот процесс не является совершенным, и маловероятно, что вы сможете на 100% воссоздать исходный код. Однако это потенциально может дать вам возможность начать восстановление исходного дерева.

Ответ 6

Да, вы можете вернуть свой проект. Просто переименуйте файл yourproject.apk в yourproject.zip, и вы получите все файлы внутри этого ZIP файла. Мы меняем расширение файла с .apk на .zip. Из этого ZIP файла извлеките файл classes.dex и декомпилируйте его следующим образом.

Во-первых, вам нужен инструмент для извлечения всех (скомпилированных) классов на DEX в JAR. Там один называется dex2jar, который сделан китайским учеником.

Затем вы можете использовать JD-GUI для декомпиляции классов в JAR в исходный код. Полученный исходный код должен быть вполне читабельным, поскольку dex2jar применяет некоторые оптимизации.

Ответ 7

Для этого выполните следующие шаги или просто используйте apkToJava gem для этого процесса, он даже позаботится о том, чтобы установить необходимые инструменты для его работы.

  • конвертировать файл apk в zip
  • разархивируйте файл
  • извлечь из него classes.dex
  • использовать dex для jar для преобразования classes.dex в файл jar.
  • использовать jadx gui для открытия файла jar в качестве исходного кода java

Ответ 8

Для платформы Android вы можете попробовать ShowJava, доступный в магазине Play.

Вы можете просмотреть сгенерированный код через интерфейс приложения, а сгенерированные файлы java и структура папок хранятся в папке ShowJava в /sdcard вместе с результирующим файлом .jar полученным в результате преобразования.

Приложение бесплатно с рекламным баннером внизу основного экрана, но есть возможность покупки в приложении (3,99 $), чтобы удалить его. Покупка из приложения не добавляет никаких функций, кроме удаления рекламного баннера.

Раскрытие информации: я не являюсь разработчиком приложения и никак не связан с ним.

Ответ 9

Если вы ищете профессиональную альтернативу, посмотрите JEB Decompiler из программного обеспечения PNF.

Существует демо-версия, которая позволит вам декомпилировать большинство кода.

Ответ 10

Ниже приведены некоторые из инструментов, которые вы можете использовать для выполнения обратного проектирования из файла APK в исходный код:

  • Dex2jar
  • декомпилятор Java
  • Apktool
  • Анализатор Apk