it-swarm.com.ru

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

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

200
Marko Cakic

Есть два полезных инструмента, которые будут генерировать код 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

256
rahul

Прежде всего, я рекомендую 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 apk в той же папке. Теперь загрузите 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-код проекта, который является нашей целью при запуске. 

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

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

Enjoy and happy coding

72
Swapnil Sonar

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

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

https://www.apkdecompilers.com/

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

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

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

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

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

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

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

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

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

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

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

Build -> Analyze APK -> выберите свой APK -> это даст результаты 

 enter image description here

50
Ranjith Kumar

Существует новый способ сделать это.

Android Studio 2.2 имеет APK Analyzer, он даст много информации об apk, закажите его здесь: - http://Android-developers.blogspot.in/2016/05/Android-studio-22-preview-new-ui. HTML

 Ap

5
Brijesh Masrani

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

4
Chris Thompson

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

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

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

3
Star

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

  • конвертировать файл apk в Zip
  • распаковать файл
  • извлечь из него classes.dex
  • используйте dex to jar для конвертирования classes.dex в файл jar
  • используйте jadx gui, чтобы открыть файл jar как исходный код Java
2
Ajit Singh

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

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

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

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

1
Stephane Piriou

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

  1. Dex2jar
  2. Java декомпилятор
  3. Apktool
  4. Apk Analyzer
0
Mandeep Yadav

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

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

0
Nick