Android

How to extract code of .apk file which is not working? [duplicate]

Как извлечь код из файла .apk, который не работает?

На самом деле я пытался извлечь код из файла .apk под названием cloudfilz.apk и хотел манипулировать его исходным кодом, поэтому я выполнил шаги, приведенные ниже:-

создайте новую папку и поместите файл .apk (который вы хотите декодировать), теперь переименуйте этот файл .apk с расширением .zip (например: переименуйте из filename.apk в filename.apk.zip) и сохраните его .. теперь вы получаете файлы classes.dex etc...at на этом этапе вы можете видеть drawable, но не XML и java file...so продолжить...

Шаг 2:

теперь извлеките этот zip-файл apk в ту же папку (в данном случае, например, в НОВУЮ ПАПКУ). теперь скачайте dex2jar по этой ссылке http://code.google.com/p/dex2jar/ и распакуйте его в ту же папку (в данном случае в НОВУЮ ПАПКУ) ..... теперь откройте командную строку и перейдите в эту папку (в данном случае в НОВУЮ ПАПКУ) .... после достижения напишите "dex2jar classes.dex" и нажмите enter ..... теперь вы получите файл classes.dex.dex2jar в той же папке......

=> Вопрос: -Мне удалось выполнить шаг 1, но на шаге 2, когда я выполняю dex2jar classes.dex, я получаю сообщение об ошибке в командной строке java.lang.UnsupportedClassVersionError , я знаю, что это из-за несовместимости между моей установленной версией JDK и classes.dex Номер версии JDK, поэтому застрял здесь и не вижу выхода...

Переведено автоматически
Ответ 1

Примечание: Все следующие инструкции применимы универсально (иначе говоря, ко всем операционным системам), если не указано иное.


Предварительные запросы

Вам понадобится:


  • Рабочая установка Java

  • Работающий терминал / командная строка

  • Компьютер

  • Файл APK

Шаги

Шаг 1: Изменение расширения файла APK


  1. Измените расширение .apk файла, либо добавив .zip расширение к имени файла, либо изменив .apk на .zip.


    Например, com.example.apk становится com.example.zip или com.example.apk.zip. Обратите внимание, что в Windows и macOS вам может быть предложено, уверены ли вы, что хотите изменить расширение файла. Нажмите OK или Add, если вы используете macOS:


Диалоговое окно подтверждения добавления расширения macOS

Шаг 2: Извлечение Java-файлов из APK


  1. Извлеките переименованный файл APK в определенную папку. Например, пусть эта папка будет demofolder.



    • Если это не сработало, попробуйте открыть файл в другом приложении, таком как WinZip или 7-Zip.


    • Для macOS вы можете попробовать запустить unzip в терминале (доступен по адресу /Applications/Terminal.app), где он принимает один или несколько аргументов: файл для распаковки + необязательные аргументы. Смотрите man unzip документацию и аргументы.



  2. Загрузите dex2jar (смотрите все выпуски на GitHub) и распакуйте этот zip-файл в ту же папку, как указано в предыдущем пункте.


  3. Откройте командную строку (или терминал) и измените свой текущий каталог на папку, созданную в предыдущем пункте, и введите команду d2j-dex2jar.bat classes.dex и нажмите enter. Это сгенерирует classes-dex2jar.jar файл в той же папке.



    • Пользователям macOS / Linux: Замените d2j-dex2jar.bat на d2j-dex2jar.sh. Другими словами, запустите d2j-jar2dex.sh classes.dex в терминале и нажмите enter.


  4. Скачайте Java-декомпилятор (смотрите все выпуски на Github), извлеките его и запустите (он же двойной щелчок) исполняемый файл / приложение.


  5. Из окна JD-GUI либо перетащите сгенерированный classes-dex2jar.jar файл в него, либо перейдите на File > Open File... и найдите jar.


  6. Далее в меню перейдите к File > Save All Sources (Windows: Ctrl+Alt+S, macOS: ++S). Должно открыться диалоговое окно с вопросом, куда сохранить zip-файл с именем `classes-dex2jar.jar.src.zip", состоящий из всех пакетов и файлов java. (Вы можете переименовать zip-файл для сохранения)


  7. Извлеките этот zip-файл (classes-dex2jar.jar.src.zip), и вы должны получить все java-файлы приложения.


Шаг 3: Получение xml файлов из APK


  • Для получения дополнительной информации смотрите на apktool веб-сайте с инструкциями по установке и не только

  • Windows:



    1. Загрузите скрипт-оболочку (необязательно) и jar apktool (обязательно) и поместите их в ту же папку (например, myxmlfolder).

    2. Измените ваш текущий каталог на myxmlfolder папку и переименуйте файл apktool jar в apktool.jar.

    3. Поместите .apk файл в ту же папку (т.е. myxmlfolder).

    4. Откройте командную строку (или терминал) и измените свой текущий каталог на папку, в которой apktool хранится (в данном случае, myxmlfolder). Затем введите команду apktool if framework-res.apk.


      Что мы здесь делаем, так это устанавливаем фреймворк. Дополнительную информацию смотрите в документах.


    5. Приведенная выше команда должна привести к появлению "Фреймворк установлен ..."

    6. В командной строке введите команду apktool d filename.apk (где filename - имя файла apk). Это должно расшифровать файл. Дополнительную информацию смотрите в документах.


      Это должно привести к тому, что filename.out будет выведена папка, где filename это исходное имя файла apk без .apk расширения файла. В этой папке находятся все XML-файлы, такие как layout, drawables и т.д.



Источник: Как получить исходный код из файла APK - Comptech

Ответ 2

Любой файл .apk из market или неподписанный


  1. Если ваш apk загружен из market и, следовательно, подписан, установите Astro File Manager из market. Откройте Astro> Инструменты> Диспетчер приложений / Резервное копирование и выберите приложение для резервного копирования на SD-карту. Подключите телефон как USB-накопитель и получите доступ к папке "backupsapps", чтобы найти apk целевого приложения (назовем его app.apk). Скопируйте его на свой локальный диск, то же самое относится и к неподписанному .apk.



  2. Скачайте Dex2Jar zip по этой ссылке: SourceForge



  3. Распакуйте загруженный zip-файл.



  4. Откройте командную строку и напишите следующую команду при переходе в каталог, где находится dex2jar exe, а также скопируйте apk в тот же каталог.


    dex2jar targetapp.apk file(./dex2jar app.apk на терминале)



  5. http://jd.benow.ca / скачайте декомпилятор по этой ссылке.



  6. Откройте ‘targetapp.apk.dex2jar.jar’ с помощью файла jd-gui> Сохраните все исходники, чтобы сохранить файлы классов в jar в файлы java.



Ответ 3

шаг 1:


введите описание изображения здесьЗагрузите dex2jar здесь. Создайте java-проект и вставьте файлы jar (dex2jar-0.0.7.11-SNAPSHOT / lib).


Скопируйте файл apk в java project


Запустите его, и после обновления проекта вы получите файл jar.Используя java decompiler, вы можете просмотреть все файлы классов Java


шаг 2: Скачайте java-декомпилятор здесь

Ответ 4

Нажмите здесь это хорошее руководство как для windows, так и для ubuntu.


  1. apktool1.5.1.jar скачать отсюда.


  2. apktool-install-linux-r05-ibot скачать можно отсюда.


  3. dex2jar-0.0.9.15.zip скачать отсюда.


  4. jd-gui-0.3.3.linux.i686.tar.gz (java-де-комплайнер) скачать отсюда.


  5. framework-res.apk (находится на вашем устройстве Android / system / framework /)


Процедура:


  1. Переименуйте файл .apk и измените расширение на .zip ,

он станет .zip.


  1. Затем извлеките файл .zip.


  2. Разархивируйте загруженный файл dex2jar-0.0.9.15.zip скопируйте содержимое и вставьте его в папку unzip.


  3. Откройте терминал и измените каталог, чтобы распаковать “dex2jar-0.0.9.15 “


– cd - sh dex2jar.sh classes.dex (результат выполнения этой команды “classes.dex.dex2jar.jar” будет в вашей самой извлеченной папке).


  1. Теперь создайте новую папку и скопируйте в нее “classes.dex.dex2jar.jar”.


  2. Разархивируйте “jd-gui-0.3.3.linux.i686.zip“ и откройте “Java Decompiler” в полноэкранном режиме.


  3. Click on open file and select “classes.dex.dex2jar.jar” into the window.


  4. “Java Decompiler” and go to file > save and save the source in a .zip file.


  5. Create “source_code” folder.


  6. Extract the saved .zip and copy the contents to “source_code” folder.


  7. This will be where we keep your source code.


  8. Extract apktool1.5.1.tar.bz2 , you get apktool.jar


  9. Now, unzip “apktool-install-linux-r05-ibot.zip”


  10. Copy “framework-res.apk” , “.apk” and apktool.jar


  11. Paste it to the unzip “apktool-install-linux-r05-ibot” folder (line no 13).


  12. Then open terminal and type:


    – cd


    – chown -R : ‘apktool.jar’


    – chown -R : ‘apktool’


    – chown -R : ‘aapt’


    – sudo chmod +x ‘apktool.jar’


    – sudo chmod +x ‘apktool’


    – sudo chmod +x ‘aapt’


    – sudo mv apktool.jar /usr/local/bin


    – sudo mv apktool /usr/local/bin


    – sudo mv aapt /usr/local/bin


    – apktool if framework-res.apk
    – apktool d .apk


android java