Как разобрать apk файл изменить и собрать обратно
Перейти к содержимому

Как разобрать apk файл изменить и собрать обратно

  • автор:

разобрать изменить и собрать

Месяцев 3 назад собрал приложение.никаких бд и ничего нет .чтото легкое .Проект сам утерян .теперь мне надо както сделать пару изменеий в проекте заменить текст и тд.Не знаю что делать ?можно ли как то декомпилоровать апк изменить данные и обратно компелировать ? Очень нужна ваша помощ

Отслеживать
задан 10 ноя 2016 в 6:28
5,658 5 5 золотых знаков 24 24 серебряных знака 59 59 бронзовых знаков
приложение находится на Google Play?
10 ноя 2016 в 6:32
Нет я его не выставлял туда ю но должен сегодня
10 ноя 2016 в 6:33
у менять есть апк только
10 ноя 2016 в 6:33
или можно как то декомпилировать и взять оттуда мои данные и копи пастом создать новый проект
10 ноя 2016 в 6:33

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

для проведения таких действий вам потребуется:

Далее выполнить по следующим шагам:

  1. Качаем dex2jar и извлекаем в папку, например С:\Decompile .
  2. Качаем Java Decompiler (например JD-GUI) и извлекаем файлы для удобства в ту же папку, куда и dex2jar.
  3. Качаем apktool и apktool-install-windows-r04-brut1.tar.bz2 и извлекаем файлы уже в системную папку. По умолчанию C:\Windows . (Не забыть скачать второй архив)
  4. Берем нужный apk файл и кладем в папку с dex2jar и Java Decompiler.
  5. Открываем Командную строку (Обработчик команд Windows) в вышеупомянутой папке (В папке по пустому месте при зажатой кнопке Shift нажимаем правую кнопку мыши и выбираем Обработчик команд Windows).
  6. Вводим команду dex2jar и если все прошло хорошо, в той же папке появится файл .apk.dex2jar.jar
  7. Запускаем jd-gui и открываем полученный на предыдущем шаге файл. (На Windows 7 открывать с правами администратора и с совместимостью Windows XP SP3)
  8. Выбираем пункт меню File-Save All Source s и сохраняем.
  9. Извлекаем полученный zip архив.
  10. Помещаем полученную папку в папку src (надо предварительно создать).(Что бы получилась примерно такая структура С:\Decompile\\src\com\android )
  11. Опять же в командной строке вводим команду apktool d .apk , где .apk -имя пакета, -папка для декомпиляции.

Если все хорошо, тогда в указанной папке будут исходники в двух форматах (java и smali), ресурсы и файлы AndroidManifest.xml , apktool.yml

Таким образом будут получены исходники. Правда после декомпиляции в коде есть, можно сказать, ошибки,например вместо true и false стоят 1 и 0 соответственно.

разобрать изменить и собрать

Месяцев 3 назад собрал приложение.никаких бд и ничего нет .чтото легкое .Проект сам утерян .теперь мне надо както сделать пару изменеий в проекте заменить текст и тд.Не знаю что делать ?можно ли как то декомпилоровать апк изменить данные и обратно компелировать ? Очень нужна ваша помощ

Отслеживать
задан 10 ноя 2016 в 6:28
5,658 5 5 золотых знаков 24 24 серебряных знака 59 59 бронзовых знаков
приложение находится на Google Play?
10 ноя 2016 в 6:32
Нет я его не выставлял туда ю но должен сегодня
10 ноя 2016 в 6:33
у менять есть апк только
10 ноя 2016 в 6:33
или можно как то декомпилировать и взять оттуда мои данные и копи пастом создать новый проект
10 ноя 2016 в 6:33

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

для проведения таких действий вам потребуется:

Далее выполнить по следующим шагам:

  1. Качаем dex2jar и извлекаем в папку, например С:\Decompile .
  2. Качаем Java Decompiler (например JD-GUI) и извлекаем файлы для удобства в ту же папку, куда и dex2jar.
  3. Качаем apktool и apktool-install-windows-r04-brut1.tar.bz2 и извлекаем файлы уже в системную папку. По умолчанию C:\Windows . (Не забыть скачать второй архив)
  4. Берем нужный apk файл и кладем в папку с dex2jar и Java Decompiler.
  5. Открываем Командную строку (Обработчик команд Windows) в вышеупомянутой папке (В папке по пустому месте при зажатой кнопке Shift нажимаем правую кнопку мыши и выбираем Обработчик команд Windows).
  6. Вводим команду dex2jar и если все прошло хорошо, в той же папке появится файл .apk.dex2jar.jar
  7. Запускаем jd-gui и открываем полученный на предыдущем шаге файл. (На Windows 7 открывать с правами администратора и с совместимостью Windows XP SP3)
  8. Выбираем пункт меню File-Save All Source s и сохраняем.
  9. Извлекаем полученный zip архив.
  10. Помещаем полученную папку в папку src (надо предварительно создать).(Что бы получилась примерно такая структура С:\Decompile\\src\com\android )
  11. Опять же в командной строке вводим команду apktool d .apk , где .apk -имя пакета, -папка для декомпиляции.

Если все хорошо, тогда в указанной папке будут исходники в двух форматах (java и smali), ресурсы и файлы AndroidManifest.xml , apktool.yml

Таким образом будут получены исходники. Правда после декомпиляции в коде есть, можно сказать, ошибки,например вместо true и false стоят 1 и 0 соответственно.

Как разобрать apk файл изменить и собрать обратно

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.

Декомпиляция
    для декомпиляции ресурсов. для преобразования dex в jar. для получения исходников из jar.

  • еще рекомендую JAD, некоторые места лучше декомпилирует чем JD-GUI.

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

На этом можно было и закончить эксперименты с декомпиляцией, но лень двигатель прогресса и родился новый способ.

Переопределение классов

Итак, jar это библиотека, так почему бы просто не подключить ее к новому проекту? Кидаем ее в папку libs, наследуемся от главной активити и компилируем. Все работает, главное чтоб не совпадали имена классов, поэтому названия пакетов должно отличаться иначе как минимум совпадут сгенерированные BuildConfig и R.

Таким способом можно отнаследоваться от Activity, Service, BroadcastReceiver и, возможно, некоторых других классов объявляемых в манифесте, так же в манифесте нужно будет указать новые имена классов, иначе они не будут использоваться.

Теперь можно переопределить виртуальные функции, но и только, тем более ключевое слово final не позволит это сделать и отнаследоваться тоже, поэтому идем дальше.

Замена классов

Разархивировав jar библиотеку получим class файлы, это скомпилированные классы, заметим, что при сборке проекта в папке bin/classes лежат те же class файлы, а что если подсунуть туда файлы из библиотеки…

Не все так просто, для начала нужно скомпилировать проект. Чтобы использовать классы исходного приложения нужно его как-то присоединить к проекту, но при этом не экспортировать. Делается это просто: из папки libs Эклипс сам экспортирует библиотеки, поэтому перемещаем jar библиотеку в папку lib и подключаем к проекту, в Эклипсе это Project->Preferences->Java Build Path->Libraries->Add Jars… далее во вкладке Order and Export нужно убедиться, что не установлен чекбокс, потому что экспортировать библиотеку нам не нужно, все будет в class файлах.

Теперь берем какой-нибудь класс из декомпилированных исходников приложения, исправляем в нем ошибки компиляции, добавляем, например, показ диалога, чтоб убедиться, что используется именно новый класс. Далее очищаем проект, в Эклипсе это Project->Clean, копируем class файлы в папку bin/classes, собираем проект и все работает!

При следующих сборках проекта нет необходимости его очищать, так что использовать такой способ достаточно удобно. Для облегчения исправления ошибок после декомпиляции я использовал исходники полученные из JD-GUI и JAD, обычно этого было достаточно.

Но вот пришло время собрать релизную версию, а для нее, конечно же, используется обфускатор и выдаст он сотни ошибок на совпадения имен классов и неразрешенные ссылки. Вот теперь пора убрать из скомпилированных class файлов классы, которые были заменены, после этого ошибок не должно быть. Еще одна неприятная особенность сборки релиза — нужно каждый раз очищать проект и копировать class файлы, а то они куда-то пропадают.

Заключение

Таким способом декомпилируются только модифицируемые файлы, что избавляет от исправления ошибок во всех исходниках и улучшает надежность, так как всего часть кода подвергнется процессу декомпиляции — исправления — компиляции.

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

Обновление классов в jar — идея замены классов пришла из этой возможности для jar библиотеки.

Иногда некоторые приложения на Android чем-то не устраивают пользователя. В качестве примера можно привести назойливую рекламу. А то бывает и так — всем хороша программа, да только перевод в ней или кривой, или вовсе отсутствует. Или, например, программа триальная, а получить полную версию возможности нет. Как же изменить ситуацию?

Введение

В этой статье мы поговорим о том, как разобрать пакет APK с приложением, рассмотрим его внутреннюю структуру, дизассемблируем и декомпилируем байт-код, а также попробуем внести в приложения несколько изменений, которые могут принести нам ту или иную выгоду.

Чтобы сделать все это самостоятельно, потребуются хотя бы начальные знания языка Java, на котором пишутся приложения для Android, и языка XML, который используется в Android повсеместно — от описания самого приложения и его прав доступа до хранения строк, которые будут выведены на экран. Также понадобится умение обращаться со специализированным консольным софтом.

Итак, что же представляет собой пакет APK, в котором распространяется абсолютно весь софт для Android?

Декомпиляция приложений

В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:

Использовать их следует так. Сначала запускаем dex2jar, указывая в качестве аргумента путь до apk-пакета:

В результате в текущем каталоге появится Java-пакет mail.jar, который уже можно открыть в jd-gui для просмотра Java-кода.

Устройство APK-пакетов и их получение

Пакет приложения Android, по сути, является обычным ZIP-файлом, для просмотра содержимого и распаковки которого никаких специальных инструментов не требуется. Достаточно иметь архиватор — 7zip для Windows или консольный unzip в Linux. Но это что касается обертки. А что внутри? Внутри же у нас в общем случае такая структура:

  • META-INF/ — содержит цифровой сертификат приложения, удостоверяющий его создателя, и контрольные суммы файлов пакета;
  • res/ — различные ресурсы, которые приложение использует в своей работе, например изображения, декларативное описание интерфейса, а также другие данные;
  • AndroidManifest.xml — описание приложения. Сюда входит, например, список требуемых разрешений, требуемая версия Android и необходимое разрешение экрана;
  • classes.dex — компилированный байт-код приложения для виртуальной машины Dalvik;
  • resources.arsc — тоже ресурсы, но другого рода — в частности, строки (да-да, этот файл можно использовать для русификации!).

Перечисленные файлы и каталоги есть если не во всех, то, пожалуй, в абсолютном большинстве APK. Однако стоит упомянуть еще несколько не столь распространенных файлов/каталогов:

  • assets — аналог ресурсов. Основное отличие — для доступа к ресурсу необходимо знать его идентификатор, список asset’ов же можно получать динамически, используя метод AssetManager.list() в коде приложения;
  • lib — нативные Linux-библиотеки, написанные с помощью NDK (Native Development Kit).

Этот каталог используют производители игр, помещая туда движок игры, написанный на C/C++, а также создатели высокопроизводительных приложений (например, Google Chrome). С устройством разобрались. Но как же получить сам файл пакета интересующего приложения? Поскольку без рута с устройства забрать файлы APK не представляется возможным (они лежат в каталоге /data/app), а рутить не всегда целесообразно, имеется как минимум три способа получить файл приложения на компьютер:

  • расширение APK Downloader для Chrome;
  • приложение Real APK Leecher;
  • различные файлообменники и варезники.

Какой из них использовать — дело вкуса; мы предпочитаем использовать отдельные приложения, поэтому опишем использование Real APK Leecher, тем более что написан он на Java и, соответственно, работать будет хоть в винде, хоть в никсах.

Настройка Real APK Leecher

Настройка Real APK Leecher

Просмотр и модификация

Допустим, ты нашел интересующий тебя пакет, скачал, распаковал… и при попытке просмотра какого-нибудь XML-файла с удивлением обнаружил, что файл не текстовый. Чем же его декомпилировать и как вообще работать с пакетами? Неужели необходимо ставить SDK? Нет, SDK ставить вовсе не обязательно. На самом деле для всех шагов по распаковке, модификации и упаковке пакетов APK нужны следующие инструменты:

Использовать все эти инструменты можно и по отдельности, но это неудобно, поэтому лучше воспользоваться более высокоуровневым софтом, построенным на их основе. Если ты работаешь в Linux или Mac OS X, то тут есть инструмент под названием apktool. Он позволяет распаковывать ресурсы в оригинальный вид (в том числе бинарные XML- и arsc-файлы), пересобирать пакет с измененными ресурсами, но не умеет подписывать пакеты, так что запускать утилиту signer придется вручную. Несмотря на то что утилита написана на Java, ее установка достаточно нестандартна. Сначала следует получить сам jar-файл:

Далее нам понадобится скрипт-обвязка для запуска apktool (он, кстати, доступен и для Windows), включающий в себя еще и утилиту aapt, которая понадобится для запаковки пакета:

Далее просто сваливаем содержимое обоих архивов в каталог

/bin и добавляем его в $PATH:

Если же ты работаешь в Windows, то для нее есть превосходный инструмент под названиемVirtuous Ten Studio, который также аккумулирует в себе все эти инструменты (включая сам apktool), но вместо CLI-интерфейса предоставляет пользователю интуитивно понятный графический интерфейс, с помощью которого можно выполнять операции по распаковке, дизассемблированию и декомпиляции в несколько кликов. Инструмент этот Donation-ware, то есть иногда появляются окошки с предложением получить лицензию, но это, в конце концов, можно и потерпеть. Описывать его не имеет никакого смысла, потому что разобраться в интерфейсе можно за несколько минут. А вот apktool, вследствие его консольной природы, следует обсудить подробнее.

Импорт APK в Virtuous Ten Studio

Импорт APK в Virtuous Ten Studio

Рассмотрим опции apktool. Если вкратце, то имеются три основные команды: d (decode), b (build) и if (install framework). Если с первыми двумя командами все понятно, то что делает третья, условный оператор? Она распаковывает указанный UI-фреймворк, который необходим в тех случаях, когда ты препарируешь какой-либо системный пакет.

Рассмотрим наиболее интересные опции первой команды:

  • -s — не дизассемблировать файлы dex;
  • -r — не распаковывать ресурсы;
  • -b — не вставлять отладочную информацию в результаты дизассемблирования файла dex;
  • —frame-path — использовать указанный UI-фреймворк вместо встроенного в apktool. Теперь рассмотрим пару опций для команды b:
  • -f — форсированная сборка без проверки изменений;
  • -a — указываем путь к aapt (средство для сборки APK-архива), если ты по какой-то причине хочешь использовать его из другого источника.

Пользоваться apktool очень просто, для этого достаточно указать одну из команд и путь до APK, например:

После этого в каталоге mail появятся все извлеченные и дизассемблированные файлы пакета.

Препарирование. Отключаем рекламу

Теория — это, конечно, хорошо, но зачем она нужна, если мы не знаем, что делать с распакованным пакетом? Попробуем применить теорию с пользой для себя, а именно модифицируем какую-нибудь софтину так, чтобы она не показывала нам рекламу. Для примера пусть это будет Virtual Torch — виртуальный факел. Для нас эта софтина подойдет идеально, потому что она под завязку набита раздражающей рекламой и к тому же достаточно проста, чтобы не потеряться в дебрях кода.

Поиск кода рекламы в jd-gui

Поиск кода рекламы в jd-gui

Итак, с помощью одного из приведенных способов скачай приложение из маркета. Если ты решил использовать Virtuous Ten Studio, просто открой APK-файл в приложении и распакуй его, для чего создай проект (File -> New project), затем в контекстном меню проекта выбери Import File. Если же твой выбор пал на apktool, то достаточно выполнить одну команду:

После этого в каталоге com.kauf.particle.virtualtorch появится файловое дерево, похожее на описанное в предыдущем разделе, но с дополнительным каталогом smali вместо dex-файлов и файлом apktool.yml. Первый содержит дизассемблированный код исполняемого dex-файла приложения, второй — служебную информацию, необходимую apktool для сборки пакета обратно.

Первое место, куда мы должны заглянуть, — это, конечно же, AndroidManifest.xml. И здесь мы сразу встречаем следующую строку:

Нетрудно догадаться, что она отвечает за предоставление приложению полномочий на использование интернет-соединения. По сути, если мы хотим просто избавиться от рекламы, нам, скорее всего, достаточно будет запретить приложению интернет. Попытаемся это сделать. Удаляем указанную строку и пробуем собрать софтину с помощью apktool:

В каталоге com.kauf.particle.virtualtorch/build/ появится результирующий APK-файл. Однако установить его не получится, так как он не имеет цифровой подписи и контрольных сумм файлов (в нем просто нет каталога META-INF/). Мы должны подписать пакет с помощью утилиты apk-signer. Запустили. Интерфейс состоит из двух вкладок — на первой (Key Generator) создаем ключи, на второй (APK Signer) подписываем. Чтобы создать наш приватный ключ, заполняем следующие поля:

  • Target File — выходной файл хранилища ключей; в нем обычно хранится одна пара ключей;
  • Password и Confirm — пароль для хранилища;
  • Alias — имя ключа в хранилище;
  • Alias password и Confirm — пароль секретного ключа;
  • Validity — срок действия (в годах). Значение по умолчанию оптимально.

Остальные поля, в общем-то, необязательны — но необходимо заполнить хотя бы одно.

Создание ключа в apk-signer

Создание ключа в apk-signer

WARNING

Чтобы подписать приложение с помощью apk-signer, ты должен установить Android SDK и указать полный путь до него в настройках приложения.

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

Теперь этим ключом можно подписать APK. На вкладке APK Signer выбираем только что сгенерированный файл, вводим пароль, алиас ключа и пароль к нему, затем находим файл APK и смело жмем кнопку «Sign». Если все пройдет нормально, пакет будет подписан.

Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.

Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.

Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс Ad.smali, по названию которого нетрудно догадаться, что именно он выводит рекламу.

Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл MainActivity.smali. Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.

Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:

Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из AndroidManifest.xml строку, собираем пакет, подписываем и устанавливаем.

Наш подопытный кролик. Видна реклама Он же, но уже без рекламы

Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл AndroidManifest.xml. И да, в нем есть следующие строки:

Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) android.intent.action.MAIN из категории android.intent.category.LAUNCHER. Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.

Открываем файл Start.smali и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:

Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:

Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.

  • Перевод приложений Android;
  • пример снятия триала с приложения.

Итоги

Эта статья лишь краткое введение в методы вскрытия и модификации Android-приложений. За кадром остались многие вопросы, такие как снятие защиты, разбор обфусцированного кода, перевод и замена ресурсов приложения, а также модификация приложений, написанных с использованием Android NDK. Однако, имея базовые знания, разобраться во всем этом — лишь вопрос времени.

Apktool M
Версия: 2.4.0-211111

Последнее обновление программы в шапке: 11.11.2021

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Инструментарий для работы с файлами apk и apks

Описание:
Apktool — декомпиляция и компиляция установочных пакетов Android® (*.apk), в том числе и системных приложений.

Перевод приложений, в том числе и в автоматическом режиме (поддерживается более 100 языков).

Менеджер установленных приложений.

Настраиваемый текстовый редактор с подсветкой синтаксиса и подсказками, с возможностью просмотра исходного java-кода, с возможностью импорта собственных тем подсветки кода.

Удобный файловый менеджер с множеством функций.

Работа с различными типами установочных файлов — *.apk, *.apks, *.xapk, *.apkm.

Антисплит — слияние Android App Bundle (сплит) в один установочный файл, а так же установка и извлечение таких файлов.

Создание собственной подписи и подписание приложений.

Быстрое редактирование названия приложения, имени пакета (клонирование приложения), иконки приложения и прочего, без необходимости пересборки.

Root-права не нужны.

Приложение полностью бесплатно, поддерживается старыми устройствами начиная с Android 4.0 и не содержит никакой рекламы и аналитики.

Требуется Android: Android 4.0+
Русский интерфейс: Да

Прикрепленный файл

Версия: 2.4.0-200715
Apktool M_v2.4.0-200715(2020071501).apk ( 7.96 МБ )

Вопросы по редактированию содержимого apk-файлов обсуждаются не здесь, а в Клубе Mod APK

Причина редактирования: Обновление: новая версия 2.4.0-211111 Apktool M сборка 2021111102 AnimeDroid_Chan, Хорошая утилита!+ Улетел.
Расскажите про переводчик,как пользоваться и где его найти)

kormax2, у разработчика спроси, он здесь сидит. Я просто его творение сюда залил под его согласием, т.к проги здесь не было.

kormax2, вы должны разобрать apk (как минимум ресурсы), перейти в папку с декомпилированными файлами. Переводчик появится в меню папки (меню файлового менеджера вызывается тапом по строке с адресом). Отличная программа, но в прошивках miui также надо отключать оптимизацию, по аналогии с SAI.

Пробовал создать собственную подпись, и собрать приложение, но оно не подписывается с пользовательской подписью. С дефолтной всё норм.

Прикрепленное изображение

$_Vladislav, опишите подробнее: тип ключа и данные, которые вы указывали. без этого ничего не понятно

_Maximoff_, тип ключа: любой (пробовал все)

Вводимые данные: Алиас, Пароль хранилища, Пароль ключа, Срок действия и Имя

$_Vladislav, ну так что конкретно вводили в эти поля? размер ключа меняли? подробно напишите (пароли не обязательно, просто скажите, есть ли там специфичные символы какие-то)

Прикрепленное изображение

$_Vladislav, попробуйте срок действия меньше указать, он вводится в годах с текущего момента, куда вам 10 тысяч то _Maximoff_, походу дело в сроке действия было. Понизил значение, подписалось. Я так понял этот срок измеряется в годах а не днях. А я то думал в днях Шикарная вещь , в коде я не шарю и в ручную не редактирую кроме как закоментить что нибудь или командой "gone" что то скрыть)) так что здесь не пробовал редактировать, но этот Apktool топовый , антисплит работает идеально , разбирает собирает приложения , переводчик , подпись всё классно , ещё пример собирал приложение на ApkEditor всё норм , но при установке пишет пакет повреждён (отключал рекламу , аналитику и.т.д) взял этот gen_sign пропатченый из папки ApkEditor и просто пересобрал в Apktool M всё установилось нормально и заботало ) + оформление комфортное настройки всё очень просто и понятно что вообще к чему и тёмная тема есть это важно ! 😀 Короче ApkTool для мобильных устройств которые я просто пробовал мне были абсолютно не нужны , так как есть ApkEditor , MT и.т.д которыми могут пользоваться "особо одарённые" люди как я без каких-то широких знаний , но этот Apkrool M стоит у меня теперь на постоянной основе , огромное спасибо автору за эту работу и доступность всех функций приложения. _Maximoff_, здравствуйте! Скажите пожалуйста, я пытаюсь декомпилировать split APK Термукса но что-то он не хочет, ругается. В чем проблема ? Я что-то не правильно делаю или в утилите проблема ?

Прикрепленное изображение

Прикрепленное изображение

Zhymabek_Roman, программа пытается найти odex файлы, потому что в конфигах нет dex. Извлеките, и декомпилируйте только base.apk. Устанавливайте потом с подписью всех частей. Либо декомпилируйте только ресурсы, если Вам не нужны smali. Либо объедините сплит в целый apk, и после этого работайте с ним. Все зависит от конкретных целей. _Maximoff_, здравствуйте !
В режиме быстрого редактирования меняю буковки в имени пакета (цель: клон) и более ничего не делаю. Клон получается полу-рабочий (конкретно не работает поиск, может быть и ещё чего). В оригинале все хорошо.
Версия 200715, ОС 7.0
В чем проблема или что я делал не правильно ?

Не работает поиск (вылет)

gar_alex, проблему я нашёл, кажется, исправлю. Спасибо.

Тип: Beta
Версия: 2.4.0-201016-beta
Краткое описание: Beta
Что нового:
— исправление ошибок (в частности: исправлен запуск на Android версии ниже 4.4, исправлена ошибка быстрого редактирования, найденная gar_alex);
— оптимизация некоторых функций;

Прикрепленный файл

Так же, тут до сих пор нет плагина для расшифровки файлов *.apkm от APKMirror, исправляю (требуется Android 4.4 и выше):
Apktool M — UnApkm v1.0(1).apk ( 1.04 МБ )

В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения.

image

Автор: Eric Gruber

В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения. Хорошая новость в том, что для отладки не требуются привилегии суперпользователя. Описанные техники могут быть очень кстати во время пентестов мобильных приложений, поскольку мы можем «проникнуть» в код во время работы программы, получить и записать информацию, к которой обычно у нас нет доступа. Например, можно перехватить трафик перед шифрованием и на лету получить ключи, пароли и любую другую ценную информацию. Статья будет полезна пентестерам и разработчикам мобильных приложений, желающих получить более глубокие знания о возможных атаках на платформе Android.

Требования к тестовой среде:

В статье будет использоваться следующая конфигурация: Windows 8, Android Studio и IntelliJ IDEA. Устройство: Nexus 4 с Android версии 4.4.4. Рекомендую все утилиты добавить в переменную окружения PATH, чтобы облегчить и ускорить доступ к этим инструментам.

Инструкция ниже поможет вам подготовить устройство для экспериментов.

Активация раздела Developer Options

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab23d04aadb.jpg

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab23efed362.jpg

Рисунок 1: Для того чтобы активировать раздел Developer options, необходимо несколько раз кликнуть на Build number

Разрешение отладки через USB

Чтобы разрешить отладку через USB-порт, зайдите в раздел Settings > Developer options и отметьте флажок напротив USB debugging.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab245453b30.jpg

Рисунок 2: Включение опции USB debugging

Подключение устройства и запуск ADB

Устройство должно отобразиться в списке.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20b6a88b8.jpg

Рисунок 3: Список подключенных устройств

Если устройство не отобразилось в списке, то наиболее вероятная причина в некорректно установленных драйверах (в Windows). В зависимости от устройства драйвер можно найти либо в Android SDK, либо на сайте производителя.

Проверка приложения на возможность отладки

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

Первый способ – запустить Android Device Monitor, входящий в состав Android SDK (в папке tools). В Windows файл называется monitor.bat. При открытии Android Device Monitor устройство отобразится в разделе Devices.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20cb0ee69.jpg

Рисунок 4: Приложение Android Device Monitor

Если какое-либо приложение на устройстве можно отлаживать, это приложение также отобразится в списке. Я создал тестовую программу, но список пуст, поскольку программу отлаживать нельзя.

Второй способ проверить приложение на возможность отладки – исследовать файл AndroidManifest.xml из пакета приложения (APK, Android application package). APK представляет собой zip-архив, содержащий всю информацию, необходимую для запуска приложения на Android-устройстве.

Всякий раз, когда приложения загружается из Google Play Store, также загружается и пакет приложения. Все загруженные APK-файлы обычно хранятся на устройстве в папке /data/app. Если у вас нет прав суперпользователя, вы не сможете получить список файлов из директории /data/app. Хотя, если вы знаете имя APK-файла, можете скопировать его при помощи утилиты adb. Чтобы узнать имя APK-файла, введите следующую команду:

Появится командная строка устройства. Затем введите следующую команду:

pm list packages -f

Отобразится список всех пакетов на устройстве.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20e0c5cc5.jpg

Рисунок 5: Перечень пакетов на устройстве

Глядя на список, находим тестовое приложение.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20e6154fe.jpg

Рисунок 6: Пакет созданного тестового приложения (выделено белым)

Теперь необходимо скопировать файл пакета. Открываем шелл и вводим следующую команду:

adb pull /data/app/[.apk file] [location]

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20eb8d72e.jpg

Рисунок 7: Копируем APK-файл с устройства в систему

Теперь нужно открыть файл пакета и исследовать содержимое AndroidManifest.xml. К сожалению, мы не можем просто так распаковать архив, поскольку APK-файл закодирован в бинарном формате. Для раскодировки чаще всего используется утилита apktool, хотя я использую APK Studio, поскольку у этого приложения дружелюбный графический интерфейс. Далее в статье будет рассказываться об APK Studio.

В APK Studio кликните на маленькую зеленую иконку, задайте имя проекту и укажите путь к APK файлу. Затем укажите пусть для сохранения проекта.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20f0921cb.jpg

Рисунок 8: Создание нового проекта в APK Studio

После открытия APK выберите файл AndroidManifest.xml и посмотрите параметры тега application. Если флаг android:debuggable отсутствует (или присутствует, но установлено значение false), значит, приложение отлаживать нельзя.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20f7d225c.jpg

Рисунок 9: Содержимое файла AndroidManifest.xml

Модификация файла AndroidManifest.xml

При помощи утилиты apktool или APK Studio мы можем модифицировать файлы и упаковывать содержимое обратно в пакет. Сейчас мы изменим файл AndroidManifest.xml так, чтобы приложение можно было отлаживать. Добавляем внутрь тега application строчку android:debuggable="true".

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab20fc42d15.jpg

Рисунок 10: Изменяем содержимое тега application

После добавления флага кликаем на иконку «молоток» и заново собираем пакет. Пересобранный пакет будет находиться в директории build/apk.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21012ace5.jpg

Рисунок 11: Повторная сборка пакета завершилась успешно

После пересборки пакет подписывается и его можно заново установить на устройстве (все Android-приложения должны быть подписаны). Большинство приложений не проверяет сертификат, при помощи которого происходит подпись. В противном случае необходимо изменить код, выполняющий эту проверку.

Теперь нужно установить пересобранный пакет. Вначале удаляем старое приложение при помощи следующей команды:

adb pm uninstall[package name]

Затем устанавливаем новый пакет:

adb install [.apk file]

Также можно удалить и установить пакет одной командой:

adb install -r [.apk file]

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab210595029.jpg

Рисунок 12: Установка пересобранного пакета

Проверьте, чтобы переустановленное приложение корректно запускалось на устройстве. Если все работает, переходим обратно в Android Device Monitor, где должно появиться тестовое приложение.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab210a2d024.jpg

Рисунок 13: Теперь пересобранное приложение можно отлаживать

Настройка среды разработки (IDE)

Теперь к пересобранному приложению можно подцепить отладчик, но вначале нужно создать проект в среде разработки (в статье используется IntelliJ IDEA). Создаем новый проект. В поле Application name указываем произвольное имя. В поле Package name указываем имя, в точности совпадающее с иерархией папок пересобранного пакета.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab210f9153d.jpg

Рисунок 14: Создание нового проекта в IntelliJ IDEA

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21133b456.jpg

Рисунок 15: Иерархия директорий тестового приложения

Снимите флажок «Create Hello World Activity» и завершите создание проекта (все остальные параметры остаются по умолчанию). Новый проект должен выглядеть примерно так:

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21173f8b3.jpg

Рисунок 16: Иерархия папок и файлов нового проекта

После создания проекта нужно добавить исходный код из APK-файла для того, чтобы отладчик «знал» имена символов, методов, переменных и т. д. Хорошая новость в том, что Android-приложения можно декомпилировать практически без потери качества (исходный код будет совпадать с оригиналом). После декомпиляции исходный текст импортируется в среду разработки (IDE).

Получение исходных текстов из пакета приложения

Для начала необходимо преобразовать APK в jar-файл. Затем мы при помощи java-декомпилятора получим исходный текст приложения. Преобразование в jar будем делать при помощи утилиты dex2jar. У dex2jar есть файл d2j-dex2jar.bat, используемый для конвертирования APK в jar. Синтаксис команды довольно прост:

d2j-dex2jar.bat [.apk file]

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab211c465e4.jpg

Рисунок 17: Преобразование APK в jar

Затем открываем или перетаскиваем полученный файл в JD-GUI (это java-декомпилятор).

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab211fdc6b0.jpg

Рисунок 18: Структура jar-файла

Jar-файл должен отобразиться в виде иерархической структуры, внутри которой находятся java-файлы с читабельным исходным кодом. Заходим в File > Save All Sources, чтобы упаковать все исходные тексты в zip-архив.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab2122f1cbe.jpg

Рисунок 19: Сохранение исходных текстов декомпилированного файла

После сохранения исходных текстов распаковываем архив в отдельную директорию.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21261c3a2.jpg

Рисунок 20: Распакованный архив

Теперь нужно импортировать обе директории в созданный ранее проект в IDE. В IntelliJ заходим в папку src и копируем туда содержимое распакованного архива (две директории).

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab212a14ab6.jpg

Рисунок 21: Обе папки скопированы в директорию src

Возвращаясь в Intellij, видим обновленный проект.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21326c1b7.jpg

Рисунок 22: В проекте появились исходные тексты

Если мы кликнем на какой-нибудь элемент из списка, то увидим исходный текст. Как видно на скриншоте ниже (исходный текст класса LoginActivity), исходный код обфусцирован при помощи ProGuard.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab214b5e308.jpg

Рисунок 23: Обфусцированный исходный текст класса LoginActivity

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

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21a0f27d5.jpg

Рисунок 24: Поставлена точка останова на обфусцированный метод

Как только появилась точка останова, подключаем отладчик к процессу на устройстве, кликнув на иконку с экраном в правом верхнем углу (на вашей IDE иконка может отличаться).

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab215912595.jpg

Рисунок 25: Подключаем отладчик к процессу

Далее вам будет предложено выбрать процесс, к которому нужно подключиться. Будут отображены только процессы с флагом android:debuggable="true".

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab215c736db.jpg

Рисунок 26: Перечень процессов для подключения отладчика

После выбора процесса отладчик подсоединится к устройству.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21655a386.jpg

Рисунок 27: Отладчик подключен к процессу, запущенному на устройстве

В текстовое поле я буду вводить число 42 (если помните, на соответствующем методе стоит точка останова).

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab24710eb8e-614x1024.jpg

Рисунок 28: В текстовое поле вводим число 42

После нажатия на кнопку «Enter Code» выполнение приложения прервется на точке останова, поскольку отладчик «осведомлен», какой метод вызывается на устройстве. Скомпилированное Android-приложение содержит отладочную информацию (например, имена переменных), доступную любому отладчику, совместимому с Java Debug Wire Protocol (JDWP). Если в приложении разрешена отладка, отладчик, совместимый с JDWP (в эту категорию попадает большинство отладчиков идущих в составе сред разработки для Java), сможет подсоединиться к виртуальной машине Android-приложения, а затем считывать и выполнять отладочные команды.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab216beec16.jpg

Рисунок 29: Сработала точка останова

На скриншоте ниже видно число, которое ранее мы ввели в текстовом поле.

https://blog.netspi.com/wp-content/uploads/2015/01/img_54ab21711a588.jpg

Рисунок 30: Перечень переменных текущего экземпляра класса

Мы можем не только считывать данные в приложении, но и вставлять свои собственные. Это может быть полезно, если мы, например, захотим прервать поток выполнения кода и обойти некоторые участки алгоритма. При помощи отладчика мы можем лучше понять логику работы приложения и проанализировать то, что недоступно обычному пользователю. Например, может оказаться очень полезным просмотр используемых функций шифрования и динамические ключи. Кроме того, иногда при отладке полезно знать, как функции взаимодействуют с файловой системой или базой данных, чтобы понять какая информация сохраняется приложением. Подобные манипуляции доступны на любом Android-устройстве без привилегий суперпользователя.

Читайте также:

  • Как в coreldraw сохранить в dxf
  • Ft232rl подключение к компьютеру
  • Mass effect 3 моды как установить файлы tpf
  • Ошибка на бортовом компьютере 0172
  • Launch x431 как подключить к компьютеру

Разбор апк файла на андроид: полное руководство

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

Первым шагом в нашей инструкции будет загрузка и установка необходимого программного обеспечения. Существует множество инструментов, которые позволяют разбирать APK файлы, но одним из наиболее популярных является инструмент APKTool. Он предоставляет возможность разбирать, изменять и собирать APK файлы. После установки APKTool, мы можем переходить к следующему шагу.

Вторым шагом будет открытие командной строки или терминала на компьютере. Далее нужно перейти в папку, где расположен APK файл, который вы хотите разобрать. С помощью команды «cd» можно перемещаться между папками и навигироваться к нужной директории.

Теперь, когда мы находимся в нужной папке, мы можем выполнить команду для разборки APK файла с использованием APKTool. Для этого нужно ввести команду «apktool d имя_файла.apk», где имя_файла.apk — это имя вашего APK файла. После выполнения команды APKTool начнет разборку APK файла и создаст новую папку с именем APK файла, в которой будут содержаться различные файлы приложения.

Теперь вы можете свободно изучать и анализировать разобранные файлы приложения. Вы можете изменять код, ресурсы, манифест и многое другое. После внесения изменений вы можете использовать APKTool для сборки нового APK файла. Для этого нужно выполнить команду «apktool b имя_папки», где имя_папки — это имя папки с разобранными файлами. Таким образом, вы можете модифицировать и пересобрать APK файл на своем устройстве Android.

Помните, что разборка и изменение APK файлов может быть незаконной или вмешательством в чужую интеллектуальную собственность. Перед внесением каких-либо изменений, убедитесь, что у вас есть право на это и действуйте в соответствии с законами и правилами.

Как разобрать APK файл на Андроид?

Для разбора APK файла на Android вам потребуется установить приложение APK Editor. Оно доступно для бесплатного скачивания из Google Play Store. Вот пошаговая инструкция:

  1. Откройте Google Play Store и найдите приложение APK Editor.
  2. Нажмите на кнопку «Установить», чтобы скачать и установить приложение на ваше устройство.
  3. После завершения установки откройте APK Editor на вашем устройстве.
  4. На главном экране приложения вы увидите две опции: «Выбрать APK из приложения» и «Выбрать APK из хранилища». Выберите опцию, которая соответствует вашим потребностям.
  5. Выберите APK файл, который вы хотите разобрать, и нажмите на него.
  6. После выбора APK файла, приложение начнет его разбор. Оно покажет вам список различных файлов и ресурсов, которые содержатся внутри APK файла.
  7. Вы можете выбрать любой файл из списка и редактировать его с помощью встроенных инструментов APK Editor, или экспортировать файл с устройства для дальнейшего редактирования на компьютере.

И вот, вы успешно разобрали APK файл на устройстве Android! Теперь вы можете изучить его содержимое и произвести изменения по своему усмотрению.

Пошаговая инструкция 2021

В данной пошаговой инструкции вы узнаете, как разобрать APK файл на устройстве Android. Следуйте этим шагам для успешного выполнения процедуры:

  1. Первым делом, загрузите APK файл, который вы хотите разобрать, на ваше устройство Android. Вы можете сделать это с помощью различных способов, например, скачав файл из интернета или передав его через USB.
  2. Откройте любой файловый менеджер на вашем устройстве Android. Вам потребуется доступ к файловой системе для выполнения следующих шагов.
  3. Найдите загруженный APK файл в файловом менеджере и выберите его.
  4. После выбора APK файла, вам может быть предложено установить приложение, которое позволит разобрать его. Если это происходит, установите это приложение путем следования инструкциям на экране.
  5. Когда установка приложения закончена, откройте его на вашем устройстве Android.
  6. В приложении найдите и откройте раздел «Разбор APK» или «Декомпилировать APK».
  7. В этом разделе вам будет предложено выбрать APK файл для разбора. Найдите и выберите ранее загруженный APK файл.
  8. Нажмите на кнопку «Разобрать» или «Декомпилировать» для начала процесса разбора APK файла.
  9. Подождите, пока процесс разбора не завершится. Время выполнения может зависеть от размера APK файла и производительности вашего устройства.
  10. По завершении разбора, вы получите доступ к отдельным файлам и ресурсам, содержащимся в APK файле. Вы можете просматривать и редактировать эти файлы в соответствии с вашими потребностями.

Теперь вы знаете, как разобрать APK файл на устройстве Android, следуя простой пошаговой инструкции. Удачного разбора!

Загрузка необходимых инструментов

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

1. Java Development Kit (JDK)

Для разбора APK файлов требуется Java Development Kit (JDK). Вы можете загрузить его с официального веб-сайта Oracle. Убедитесь, что вы загружаете версию JDK, а не Java Runtime Environment (JRE), так как вам понадобятся некоторые дополнительные инструменты, которые имеются только в JDK.

2. Android Debug Bridge (ADB)

ADB – это инструмент командной строки, который позволяет вам взаимодействовать с устройствами Android. Он необходим для установки и управления приложениями на устройстве, а также для получения доступа к файлам на устройстве. Вы можете скачать его с официального веб-сайта Android. Обычно ADB включен в Android SDK, но вы можете скачать его отдельно, если вы не хотите устанавливать полный Android SDK.

3. APKTool

APKTool – это инструмент командной строки, который позволяет вам декомпилировать и собирать APK файлы. Он позволяет вам извлекать ресурсы и код из APK файла, а также модифицировать его. Вы можете скачать APKTool с официального веб-сайта разработчика.

После загрузки и установки всех необходимых инструментов вы будете готовы приступить к разбору APK файлов на Android. Теперь вы можете перейти к следующему шагу – выбору APK файла, который вы хотите разобрать.

Установка программ и утилит

Перед тем как начать разбирать APK файл на Андроид, вам потребуется установить следующие программы и утилиты:

1. Java Development Kit (JDK) — набор инструментов для разработки и запуска программ на языке Java.
2. Android Studio — интегрированная среда разработки Android приложений.
3. APK Decompiler — утилита для декомпиляции APK файлов и извлечения исходного кода приложений.

После установки JDK и Android Studio, вам следует настроить среду разработки Android Studio и установить нужные компоненты для работы с декомпиляцией APK файлов. Далее можно приступить к процессу разбора APK файлов на Андроид.

Подготовка APK файла

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

  1. Скачайте APK файл: Сначала вам нужно получить сам файл APK, который вы хотите разобрать. Вы можете загрузить его напрямую с устройства или найти в сети, если у вас нет доступа к оригинальному файлу.
  2. Установите ADB (Android Debug Bridge): Для работы с APK файлами нужно установить инструмент ADB на компьютере. ADB позволяет управлять и взаимодействовать с устройствами Android через командную строку. Вы можете загрузить ADB с официального сайта разработчиков Android.
  3. Разрешите отладку по USB на устройстве : Для подключения вашего устройства Android к компьютеру и доступа к APK файлу, вам нужно разрешить отладку по USB в настройках разработчика устройства. Чтобы включить настройки разработчика, перейдите в раздел «О телефоне» в настройках устройства и несколько раз нажмите на «Номер сборки», пока не появится сообщение о разблокировке настроек разработчика. Затем активируйте опцию «USB-отладка».

Извлечение APK файла из устройства

ADB — это инструмент командной строки, который предоставляет возможность взаимодействовать с устройством Android через компьютер. Он включен в Android SDK (Software Development Kit) и может быть установлен на Windows, macOS и Linux.

Для начала вам нужно установить Android SDK на свой компьютер. Вы можете загрузить установщик Android SDK с официального сайта разработчиков Android. После установки Android SDK, вам нужно установить ADB и настроить переменную среды PATH.

После установки и настройки ADB, вам нужно подключить свое устройство Android к компьютеру с помощью USB-кабеля. Убедитесь, что отладка USB включена на вашем устройстве (вы можете найти эту опцию в разделе «Настройки» — «Разработчикам»).

Откройте командную строку (на Windows) или терминал (на macOS или Linux) и выполните следующую команду:

ADB покажет список подключенных устройств. Убедитесь, что ваше устройство отображается в списке, иначе проверьте подключение и настройки отладки USB.

Чтобы извлечь APK файл из устройства, выполните следующую команду:

adb pull /data/app/пакет.apk

Замените «пакет» на имя пакета приложения, APK файл которого вы хотите извлечь. APK файл будет скопирован на ваш компьютер в текущую рабочую папку.

Теперь у вас есть скопированный APK файл с вашего устройства Android, который вы можете использовать для различных целей, например, для обратного инжиниринга, анализа или установки на другие устройства.

Разборка APK файла

Для начала, вам нужно скачать и установить Android SDK на ваш компьютер. После этого, откройте командную строку и перейдите в папку, где установлен Android SDK.

Затем, найдите APK файл, который вы хотите разобрать, и скопируйте его в папку «platform-tools» в Android SDK.

Далее, в командной строке введите команду «cd platform-tools», чтобы перейти в указанную папку.

Теперь введите следующую команду: «adb pull имя_файла.apk», где «имя_файла.apk» — это имя APK файла, который вы хотите разобрать. Данная команда скопирует APK файл с устройства на ваш компьютер.

После того, как APK файл будет скопирован на ваш компьютер, вы можете начать его разборку. Для этого вам понадобится инструмент «apktool». Скачайте и установите его на ваш компьютер.

Откройте командную строку и перейдите в папку, где установлен «apktool». Затем введите следующую команду: «apktool d имя_файла.apk», где «имя_файла.apk» — это имя APK файла, который вы хотите разобрать. Данная команда разберет APK файл на отдельные файлы и сохранит их в папке с именем файла.

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

Обратите внимание, что разборка APK файла может быть сложным процессом, особенно если вы не знакомы с разработкой Android. Однако, благодаря инструментам, предоставляемым Android SDK и apktool, вы сможете получить доступ к важным данным приложения и изучить его работу внутри.

Не забывайте, что при разборке APK файла важно соблюдать законы и политику конфиденциальности. Используйте полученную информацию только в законных целях и убедитесь, что у вас есть разрешение правообладателя приложения.

Открытие файла в архиваторе

После того, как вы загрузили APK файл на свое устройство, вам понадобится архиватор, чтобы извлечь содержимое этого файла. Существует множество архиваторов, которые поддерживают работу с APK файлами, такие как 7-Zip, WinRAR, WinZip и другие. В этой инструкции мы рассмотрим использование 7-Zip.

1. Запустите 7-Zip на вашем устройстве.

2. Перейдите в папку, где вы сохраняли загруженный APK файл.

3. Щелкните правой кнопкой мыши на APK файле и выберите опцию «Открыть в архиве».

4. В окне архиватора вы увидите содержимое APK файла, включая все ресурсы и данные приложения.

5. Щелкните на папке или файле, который вы хотите извлечь из APK файла.

6. Щелкните правой кнопкой мыши на выбранной папке или файле и выберите опцию «Извлечь в» или «Извлечь здесь», чтобы сохранить его на вашем устройстве.

После завершения этих шагов выбранные файлы или папки будут извлечены из APK файла и сохранены на вашем устройстве в выбранном вами расположении.

Анализ структуры APK файла

Анализ структуры APK файла позволяет понять, как приложение организовано и какие компоненты в нем присутствуют. Вот основные компоненты, которые можно найти в структуре APK файла:

  1. AndroidManifest.xml — файл, содержащий информацию о приложении, такую как название, версия, разрешения, список активити (экранов) и т.д.
  2. classes.dex — файл, содержащий байт-код Java-классов приложения. Он исполняется на виртуальной машине Dalvik или ART, которые используются в Android.
  3. res — папка, содержащая ресурсы приложения, такие как изображения, шрифты, строки и т.д. Ресурсы разделены на различные папки согласно их типу.
  4. lib — папка, содержащая библиотеки, необходимые для работы приложения на различных аппаратных платформах (архитектурах), таких как ARM, x86 и т.д.
  5. assets — папка, содержащая произвольные файлы, которые могут использоваться приложением, например, звуки, видео, конфигурационные файлы.

Кроме основных компонентов, в структуре APK файла также могут содержаться другие файлы и папки, такие как иконки приложения, манифест-файлы модулей, файлы для локализации и т.д. Каждое приложение может иметь свою уникальную структуру в зависимости от его сложности и функциональности.

Анализ структуры APK файла может быть полезным для разработчиков приложений, чтобы изучить, какие компоненты используются, и для обратной разработки (reverse engineering) приложений, чтобы извлечь код, ресурсы и другую информацию.

С помощью различных инструментов и программ, таких как Android Studio, apktool, jadx и другие, вы можете загрузить и проанализировать APK файлы для получения более подробной информации о приложении и его компонентах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *