Как модифицировать приложение андроид
Перейти к содержимому

Как модифицировать приложение андроид

  • автор:

Reverse Engineer Your Favorite Android App

Tanuj Soni

Look inside and explore the contents of an Android Package.

Android Package (APK) is the Android application package file format used by the Android operating system for the distribution and installation of mobile apps. It can be written in either Java or Kotlin.

There are multiple use cases of decompiling an APK, like getting an understanding of implementations of some features done by popular apps.

I have used this recently to investigate one of our customer’s app crash.

If you are short on time and want a quick fix one-time solution, I would recommend using Android APK decompiler. However, as an Android Developer, you should have your setup to have more control over the decompilation process.

I will be using Slide APK to give a detailed walkthrough of the process. It is an open-source application, so we will have the source code to compare our decompilation results with the source code present in GitHub.

Tools you will need —

    For reverse engineering Android APK files. Tool to work with android .dex and java .class files. Java Decompiler is a tool to decompile and analyse Java “byte code”.

*click on the name of tool to install.

Now let’s start the decompilation ��

  • Download the .apk file using this link — Slide.apk
  • In the terminal, go to the directory where apk is downloaded and run — apktool d —no-src <apk name>
  • Running the following command decompiles the resources and the XML files of the APK to human-readable form and the Java, Kotlin code to smali files.
  • The binary resources and the XML files have been converted to their original form.
  • You can see the AndroidManifest.xml file now.
  • The Java/Kotlin code itself has been extracted into a smali folder. Read more about smalihere.

Extracting the Code ��

The code is packed into .dex files. Dex stands for Dalvik Executable. A Dex file contains code that is ultimately executed by the Android Runtime.

In an Application, Dex files are generated based on the number of methods it has. The Dalvik Executable specification limits the total number of methods that can be referenced within a single DEX file to 65,536 — including Android framework methods, library methods, and methods in your code.

When the number of methods exceeds the limit, classes2.dex, classes3.dex files are generated.

We can convert dex files to jar files using the dex2jar tool. Download the dex2jar tool using the above link in the directory where apk was decompiled.

My folder structure looks like this, where the slide folder and dex2jar-2.0 folder are on the same directory.

*I renamed the apk to slide.apk for my convenience

  • In the terminal, move to the dex2jar folder and run these 2 scripts —
    chmod u+x d2j_invoke.sh and chmod u+x d2j-dex2jar.sh
    This will enable you to run the dex2jar command and convert dex files to Java files.
  • Remember to rename your classes.dex file to app-name_classes.dex, because classes-dex2jar.jar is used as a common name and will be overridden on the next dex2jar conversion.
  • Now run ./d2j-dex2jar.sh ../slide/slide_classes.dex inside dex2jar-2.0 folder.
  • This will create slide_classes-dex2jar.jar file inside your dex2jar-2.0 folder.

Congratulations, You have decompiled the apk, and now you can see the source code ��

Now you can use the JD-GUI tool to see the Java/Kotlin files inside the application.

  • Open JD-GUI tool following the instructions written in this link.
  • Using JD-GUI, open the slide_classes-dex2jar.jar file present inside the
    dex2jar-2.0 folder.

This is a really useful tool to explore your favorite android apps and to check how they have implemented the complex features.

Модификация исходного кода android-приложения с использованием apk-файла

Так уж получилось, что приложение для чтения комиксов и манги, которое я использую на своем android-смартфоне, после обновления стало показывать рекламу в конце каждой главы комикса. Данное приложение пару лет назад было доступно на Google Play (платная версия которого и была мной куплена), но было удалено в силу «нарушения авторских прав», после чего ушло в подполье и стало распространятся через сайт разработчика. Увы, достойных альтернатив этому приложению на android и iOS я не нашел, но и смотреть рекламу особо не было желания, тем более я уже покупал версию без рекламы. Сам разработчик почему-то не сделал возможности отключить ее, а на просьбы добавить такую возможность не отозвался. Поэтому пришлось искать альтернативные методы ее отключения. Первое, что пришло в голову, это то, что android-приложения пишутся на java, а значит есть вероятность, что автор не обфусцировал свое приложение и его можно попытаться декомпилировать. Немного подумав, я приступил к работе.

Для начала был загружен сам apk-файл приложения. Затем недолгий поиск по интернету привел меня на сайт http://www.decompileandroid.com/. С его помощью можно было загрузить apk-файл с приложением и на выходе получить набор исходников. Увы, декомпиляция в java-классы происходит не совсем идеально и поэтому восстановить полностью сам проект приложения в IDE(Idea) у меня не получилось, но это позволило проанализировать саму структуру проекта и разобраться как он примерно работает. После проведения анализа, было найдено два перспективных метода в классе BaseReaderFragment.javaplaceAdViewIfNeeded и removeAdViewIfNeeded.

Код метода placeAdViewIfNeeded:

Самое простое, что пришло на ум после чтения кода, это убрать все лишнее, и оставить лишь вызов return;

Но, как уже было сказано, даже если бы я изменил в java-классе что-либо, я бы не смог в итоге скомпилировать приложение в IDE. Поэтому пришлось искать альтернативу. Оказалось, что smali-файлы, которые создаются в процессе декомпиляции, позволяют также после внесения нужных изменений, вновь собрать модифицированное приложение. Увы, сайт, что был приведен выше, позволял лишь получать исходники, но не собирать новые. Поэтому пришлось искать способы сделать это самостоятельно.
Была найдена утилита ApkTools, которая позволяла декомпилировать и компилировать apk-файлы. Кроме того, потребовалась утилита aapt.exe, которая была взята мной из стандартного SDK под андроид в папке android-sdk\build-tools\20.0.0.

Для удобства вызова утилиты из под windows был создан скрипт apktool.bat:

Для декомпиляции приложения были выполнены команды:

После чего, в полученных исходниках был найден файл BaseReaderFragment.smali и нужные нам методы были изменены следующим образом:

Далее пришла очередь сборки apk-файла из исходников.

Сделать это можно cледующей командой:

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

Распаковываем архив, выполняем команду:

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

В нем было видно, что строчка:

создает дополнительную страницу, помимо тех, что есть в главе манги, с параметром, отвечающим за показ объявлений. Было решено удалить эту строчку и посмотреть результат. Снова заглядываем в аналогичный smali-файл(BaseSeamlessReaderFragment$4) и удаляем строчку:

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

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

Как модифицировать приложение андроид

При размещении контента, по возможности, прикрепляйте инструкцию

Правила темы:
1. Разрешается выкладывать только проверенный софт (так же разрешено отписываться и давать пояснения по уже имеющимуся софту — на каком дивайсе и каким образом испытан).
2. К каждому инструменту должно быть описание (принадлежность, ОС, мануал).
3. Запрещается выкладывать и давать ссылки на нелегальный (пиратский) контент.
4. Запрещается обсуждение софта в теме.

Сообщение отредактировал Fashionon — 18.02.16, 11:12

    — инструмент для тонкой настройки серверов и не только.
    — комплект разработчика приложений на языке Java
    — инструментарий для разработки
    — набором утилит командной строки UNIX (Linux) систем
    — Преобразование юникода в человеко-читаемый язык и обратно.

    — на базе apktool 2.0.2
    — Многоцелевая кухня, для редактирования системных ресурсов
    — Утилита для разборки/сборки приложений под Linux от команды FMD
    Установка и использование apktool на OS Linux Ubuntu 14.04-64bit. Автоматическая установка
    — Готовый набор, включающий всё, что нужно для разборки файлов apk
    — Позволяет пакетно деодексировать, декомпилировать, изменять ресурсы и smali-код (переход в тему)
    — Готовый набор, включающий всё, что нужно для разборки файлов apk
    — Программа позволяет с удобством редактировать файл color.xml
    — Для UBUNTU.На Русском языке.
    — Приложение для определения запущенного активити приложения
    — Утилита для поиска и замены id из public.xml в .smali
    — Последнее время много инструкций не подходят друг кдругу из за версий smali решение данной проблемы не большим скриптом

    — Утилита для распаковки/упаковки boot.img или recovery.img под WINDOWS и Linux.
    — Перепаковка boot.img/recovery.img на уст-ве без ПК
    — работа с образом *.img на андроид
    — инструмент для перепаковки boot.img и recovery.img в LINUX
    — Распаковка boot.img
    — утилита под Линух с поддержкой dtb, корректно перепаковывающая msm boot.img recovery.img
    — Утилита для перепаковки ядер и рекавери под виндовс
    — набор утилит для перепаковки ядер
    — Настройка и подготовка к работе с исходниками, ядрами, приложениями и прошивками под ANDROID
    — Инструмент, для пакетного деодексирование приложений в андроид Lollipop
    — Инструмент для деодексации приложений Android 5.0 и выше
    — Пакет утилит для деодексирования системных apk.
    — деодекс прошивок
    — Полноавтоматический deodexed инструмент для Lollipop
    — Новая утилита для удобной обработки файлов прошивок
    — 100% рабочие прошивки под стоковый прошивальщик, ОС Убунту
    — UNIX-подобная среда и интерфейс командной строки для Microsoft Windows
    — подробная инструкция к UNIX-подобная среда и интерфейс командной строки для Microsoft Windows
    — Инструмент для создания кастомных прошивок на базе Linux.
    — ДЛЯ MAC OS X 10.8.x
    — Только для Linux
    [/url]
    — утилитка для работы с образами cramfs и yaffs2

    — Инструмент для работы с прошивками HTC в LINUX
    — Инструмент перепаковки прошивок и их отдельных частей в .tar.md5 для последующей прошивки через Odin под Windows
    — комплексный подход по работе с прошивками из под Windows
    — Комбайн для работы с прошивками на базе Android OS, a также с файлами apk
    — Позволяет сделать все что нужно для разработчика
    — перевод значений из float в HEX и обратно IEEE Floating Point Calculator

    — приложение для уменьшения веса картинок при сохранении качества
    утилита для работы с *.9.png изображениями.
    — С помощью этого приложения, вы, можете быстро посмотреть сочетание текста и фона.
    — Инструмент для пакетного преобразования индексированных .png картинок в неиндексированные
    — Это приложение помогает редактировать графические ресурсы Android-приложений и тем.
    — групповое изменение размеров графики

    — инструмент для преобразования цветовых кодов между HEX, SMALI и XML.

    — прошивальщик OS: Linux, OS X, Windows
    — инструмент на основе известного прошивальщика Heimdall — версия для прошивки в LINUX
    — инструмент для создания прошивок для некоторых девайсов Samsung

    — скрипт для портирования прошивок Android. ОС: Windows XP+
    — Небольшой инструмент для автоматизации упаковки в tar.md5 для UBUNTU
    — упрощенное использование ADB
    HUAWEI Multi-Tool -Позволяет выполнять последоваетьность команд fastboot, adb и adb shell, помогая Вам прозводить множество известных операций без лишних телодвижений.

Сообщение отредактировал Димар — 05.12.17, 11:46

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

Java Development Kit (сокращенно JDK) — бесплатно распространяемый Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.

Все современные интегрированные среды разработки на Java, такие, как NetBeans, Sun Java Studio Creator, IntelliJ IDEA, Borland JBuilder, Eclipse, опираются на сервисы, предоставляемые JDK. Большинство из них для компиляции Java-программ используют компилятор из комплекта JDK. Поэтому эти среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной инсталляции JDK на машине разработчика.

Доступны полные исходные тексты JDK, включая исходные тексты самого Java-компилятора.

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

Материал из Википедии — свободной энциклопедии
Приложения для Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.

Google предлагает для свободного скачивания инструментарий для разработки (Software Development Kit), который предназначен для x86-машин под операционными системами Linux, Mac OS X (10.4.8 или выше), Windows XP и Windows Vista. Для разработки JDK 5 или более новый.

Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). Существует плагин для Eclipse — «Android Development Tools» (ADT), предназначенный для Eclipse версий 3.3-3.6. Для IntelliJ IDEA также существует плагин, облегчающий разработку Android-приложений. Сообщается, что для среды разработки NetBeans IDE разработан экспериментальный плагин. Кроме того существует Motodev Studio for Android, которая представляет собой комплексную среду разработки, основанную на базе Eclipse и позволяет работать непосредственно с Google SDK.

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

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

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

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

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

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

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

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

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Создание Phone.tar.md5:

Создание Phone.tar — tar -c modem.bin >> PHONE_JPY.tar
Создание MD5 hash — md5sum -t PHONE_JPY.tar >> PHONE_JPY.tar
Добавление MD5 hash информации to the tar file — mv PHONE_JPY.tar PHONE_JPY.tar.md5

Создание CSC.tar.md5

Создание CSC.tar — tar -c cache.rfs >> CSC_XENJS3.tar
Создание MD5 hash — md5sum -t CSC_XENJS3.tar >> CSC_XENJS3.tar
Добавление MD5 hash информации to the tar file — mv CSC_XENJS3.tar CSC_XENJS3.tar.md5

Все команды для упаковки и создания единого tar.md5 файла (3 команды) могут быть выполнены как единая команда как показано на примере:

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

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

Сообщение отредактировал Димар — 25.01.16, 20:15

Всем, привет! Решил внести и свою лепту по сборке прошивки на Samsung Galaxy S i9000 для одина:

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

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

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

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

После этого можно закрыть командную строку и отключить телефон от ББ.

Нужный вам файл — factoryfs.rfs вы найдёте в папке, которую создали ранее по пути sdcard/BackupRom.
Далее копируйте файл factoryfs.rfs на ББ в отдельно отведённую для дальнейшей сборки прошивки папку. Туда же копируйте остальные недостающие компоненты прошивки:

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

Сообщение отредактировал Димар — 25.01.16, 20:16

Вот ещё на эту тему
Прикрепленное изображение
acc.rar ( 1.8 КБ )

*Для Win,
Unix-like изменить расширение на htm

Поле HEX поддерживает короткую запись цвета: 09f => FF0099FF
В поле SMALI автоматом добавляется 0x, если отсутствует: 3f3f40 => 0x3F3F40
█ — Вводится
█ — Получается

Совет: Если у вас в smali значение цвета задаётся как const/high16 (const/high16 v6, -0x1), чтобы узнать цвет — прибавьте к значению 4 нуля справа (-0x1 => -0x10000)

Обновлено: 9.11.2011 15:00
Причина: Неверный расчёт цвета при значениях HEX меньше 80000000

Сообщение отредактировал Димар — 25.01.16, 20:19

KERNEL Tools
ОС: Linux

Как перепаковать ядро с целью внесения в него изменений.
Начнем с того, что ядра делятся на два типа:
1) Ядро состоящее из образа boot.img состоящего из zImage и RAM Disk (диск в оперативной памяти для начальной инициализации).
2) Ядро состоящее из образа zImage в который интегрируется образ initramfs (новая концепция загрузочного диска — он представляет собой сжатый gzip'ом cpio-архив).

Итак перепаковка boot.img:
Инструкция
Инструмент
перепаковка zImage:
Инструкция
Инструмент
извлечение initramfs из zImage
Инструкция
Инструмент
инструмент под Windows

Сообщение отредактировал As i9000 — 29.11.11, 00:48

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

Очень удобная Win утилитка для работы с образами cramfs и yaffs2. Работает с класическими образами (без извратов, типа подписи и т.д.)
Позволяет удалять/добавлять файлы и линки (понимает буфер обмена из win-проводника), назначать права и владельцев.
Первоначально создана McRip для спутниковых ресиверов (поэтому ругается на размер прошивки) на немецком языке.
Я перевел на русский (опустив то, что касается прошивки реса)

Сообщение отредактировал Димар — 25.01.16, 20:22

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

Сообщение отредактировал Димар — 25.01.16, 20:24

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

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

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

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

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

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

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

Сообщение отредактировал Димар — 25.01.16, 20:32

Android Kitchen — by dsixda (xda-developers.com)
Инструмент для создания кастомных прошивок на базе Linux.

Скриптовая программа предназначен для использования в консоли.
Для работы программы требуется dev-java/sun-jdk либо открытая его реализация dev-java/icedtea (для своего дистрибутива ищите в менеджере пакетов)

HTC Aria / Liberty
HTC Desire
HTC Desire HD / Inspire 4G
HTC Desire S
HTC Desire Z / Vision / T-Mobile G2
HTC Dream / G1
HTC Droid Eris
HTC Evo 3D
HTC Evo 4G
HTC Evo View 4G (untested)
HTC Evo Shift 4G
HTC Flyer (untested)
HTC HD2
— Use NAND ROM method (Please follow this thread for details)
HTC Hero / G2 Touch
HTC Incredible
HTC Incredible 2
HTC Incredible S
HTC Legend
HTC Magic / myTouch 3G
HTC myTouch 3G Slide
HTC myTouch 4G / Glacier
HTC Nexus One
HTC Rezound
HTC Sensation
HTC Tattoo / Click
HTC Thunderbolt
HTC Wildfire / Buzz
HTC Wildfire S (untested)

Acer Liquid
Dell Streak 7
Huawei Ideos X6
— Please follow this thread for details
Huawei U8100/U8110/U8120/U8150/U8160/U8180/U8650
Huawei U8220 / T-Mobile Pulse
LG Ally
LG GT540 Optimus
LG Optimus 2X (P990)
LG Optimus Black (unconfirmed)
LG Optimus G2X (P999)
LG P500
— Please follow this thread for details
LG Shine Plus
LG Vortex
Micromax A60
Motorola Atrix (unconfirmed)
Motorola CLIQ / CLIQ XT
Motorola Droid
Motorola Droid Bionic
— Please follow this thread for details
Motorola Milestone (unconfirmed)
— You may need to remove the boot.img before building
Samsung Galaxy Nexus (untested, ‘maguro’ and ‘toro’ versions only)
Samsung Galaxy S (GT-I9000 and most variants)
— Please follow this thread for details
Samsung Galaxy S Plus (GT-I9001)
— Please follow this thread for details
Samsung Galaxy S2 (GT-I9100 and Exynos CPU variants)
— Please follow this thread for details
Samsung Galaxy S2 LTE (AT&T Skyrocket, T-Mobile SGH-T989 and equivalent)
— Please follow this thread for details
Samsung Galaxy W (GT-I8150, untested)
Samsung Nexus S / Nexus S 4G
Sony Xperia X10 / X10 Mini / X10 Mini Pro
— Build ROM without boot.img (please follow this thread for details)
ZTE Blade / Orange San Francisco

Заходим в папку

1. Set up working folder from ROM — Распаковывает прошивку из original_update
2. Add root permissions — Добавить root права
3. Add BusyBox — Добавить BusyBox
4. Disable boot screen sounds — Выключить звук загрузки
5. Add wireless tethering — Добавляет функцию WiFi-тетеринга (раздачи доступа к сети Интернет через WiFi)
6. Zipalign all *.apk files to optimize RAM usage — Уменьшаем размер apk в памяти
7. Change wipe status of ROM — Автоматически полный wipe
8. Change name of ROM — Изменяем имя прошивки
9. Check update-script for errors — Проверить update-script на ошибки
10. Show working folder information — Показать информацию распакованной прошивки

11 — Deodex files in your ROM — Деодексирование
12 — Add task killer tweak for speed (stock ROM only) — Твик Task killer
13 — Add /data/app functionality — Добавить программу в прошивку
14 — Add Nano text editor + sysro/sysrw — Добавить консольный текстовый редактор Nano
15 — Add Bash (command shell) — Добавить Bash shell оболочку
16 — Add Apps2SD — Перенос программ на SD
17 — Add /etc/init.d scripts support (busybox run-parts) — Поддержка запуска busybox
18 — Add custom boot animation functionality — Возможность добавлять кастомную заставку
19 — Porting tools (experimental)
20 — Tools for boot image (unpack/re-pack/etc.) — Работа с ядром
21 — Unpack data.img — Распаковать data.img
22 — Sign APK or ZIP file(s) Цифровая подпись apk
23 — Convert update-script or updater-script Конвертировать update-script
24 — Miscellaneous optins / Plugin scripts

99. Build ROM from working folder — Собрать прошивку в установочный zip
00. About/Update kitchen — Обновить кухню
0. Exit — Выход

В процессе работы есть детальное описание всех действий, просто переводите и у вас не будет ни каких трудностей.

Сообщение отредактировал Димар — 25.01.16, 20:51

Hariec,
Вот более расширенная и дополненая версия кухни, как тема сделано на 4pda !!!
Там есть альт-меню на русском))
Создание кастомных прошивок

Сообщение отредактировал alexyuh — 17.03.12, 12:11

Пакет под названием "android-tools", в который включены консольные утилиты "adb" и "fastboot", недавно был загружен в официальные репозитории Ubuntu 12.10 Quantal Quetzal. Команда WebUpd8 получила просьбу загрузить этот пакет в PPA-репозиторий для старых релизов Ubuntu, так что пакет был бэкпортирован на Ubuntu 12.04, 11.10 и 11.04.
"adb" (Android Debug Bridge) — консольная утилита, которую вы можете использовать, чтобы получать доступ к файловой системе на Android-устройстве; её можно использовать для отправки команд, передачи или получения файлов, установки и удаления приложения и многого другого.

"fastboot" — консольная утилита, которую вы можете использовать для открытия файловой системы на Android-устройствах через USB.
Эти утилиты также можно найти и в Android SDK; использование этого пакета всего лишь альтернативный и более простой путь их установки в Ubuntu. Также, пакеты в PPA доступны и для 32-bit, и для 64-bit, а Android SDK от Google доступен только для 32bit.

Установка пакета "android-tools" (adb и fastboot) в Ubuntu 12.04, 11.10 и 11.04

Внимание! Эта инструкция не позволит вам создать полнофункциональную прошивку сразу, но даст вам возможность начать работать над ней.Исходники занимают примерно 6Gb. Вам нужно около 25Gb свободного места чтобы скомпилировать 1 билд и до 80Gb (или больше) для полного комплекта сборки.Перед началом компиляции Jelly Bean на Ubuntu необходимо пройти несколько шагов по настройке компьютера, чтобы получить готовый инструмент.

Вам необходимо следующее:

JDK 6, если вы хотите скомпилировать Jelly bean. Вы можете скачать его с java.sun.com
или:

Python 2.4 — 2.7, который можно загрузить из python.org или:

Git 1.7 или новее. Вы можете найти его в git-scm.com или:

Установите необходимые пакеты. 64-bit (рекомендуется):

В новых версиях Ubuntu, таких как 11.10 возможно потребуется выполнить следующие действия:

В Ubuntu 12.04 в настоящее время есть только экспериментальная поддержка и не гарантируется работа по другим веткам отличным от master.

Основы хАкКиНгА / модифицирования APK приложений // перевод-туториал #1

. Кроме туториалов и прочих полезностей на нём вы можете найти игры со встроенными мод-меню: Among Us, Last Day on Earth, Hide Online и прочие популярные и не очень игры. Это не реклама, просто личная рекомендация и благодарность сайту (всё это делают администраторы и выкладывают за бесплатно).
Также, я постарался в разы улучшить свой принцип перевода, чтобы тема читалась намного приятнее и понятнее, чем было раньше.
Ну, что ж, начнём.

1. Что такое APK?

.apk — установочный файл приложения для Android’а, его можно сравнить с .exe файлом для Windows. Вам нужен этот файл, чтобы установить Приложение/Игру на ваш Android.

2. Каким образом я могу открыть APK файл на компьютере?

Сначала вам нужно получить APK игры. Самое лучшее место для скачивания APK на ваш компьютер без каких-либо инструментов — это apkcombo.com.

После загрузки APK файла, вы сможете увидеть что находится в нём, если откроете его Winrar/Winzip/7zip’ом. Для этого просто переименуйте файл из .apk в .zip.
Позже, когда вы станете более чем базовым моддером, вам иногда будет необходимо декомпилировать APK, чтобы получить

. Со временем вы поймёте что я имею ввиду. Вы можете использовать инструмент для этого, который я опубликую в разделе "Что означает подпись". Декомпиляция подразумевает, что APK разбирается полностью, по частям, так как некоторые файлы, такие как classes.dex, являются ничем иным, как еще одной заархивированной кучей других файлов.

3. В чём разница между подписанным и неподписанным APK файлом?

Каждое приложение в Google Play Market получает уникальную подпись. Она обязательно должна быть у приложения, без неё, разработчику не получится загрузить приложение в Маркет. Подпись можно сравнить с курткой охранника. Если вы хотите изменить APK, вам нужно расстегнуть куртку, но вы не сможете застегнуть её снова, это может сделать только Play Market. Поэтому, вам нужно взять новую куртку и надеть ее поверх старой. Мы, моддеры, используем Google TestKey, который можно открыто использовать. Обычно его делают для тестирования приложений перед их публикацией, но он отлично подходит и для запуска модифицированных APK.

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

. Но вам нужно удалить оригинальную игру, вы не можете установить мод поверх неё, потому что оригинальная игра имеет оригинальную подпись, а ваш мод — нет. Единственная проблема заключается в том, что Play Market не принимает тестовый ключ.

Я рекомендую этот инструмент для этого случая:
Apk Easy Tool

"Неподписанный" означает, что вы оставили расстёгнутую куртку открытой. Вы изменили APK и модифицировали его, но оставили открытым оригинальный ключ внутри, вы не подписываете его тестовым ключом. Устройства Android не могут справиться с этим по умолчанию. Но если вы получите root права на своё устройство и включите патч LuckyPatcher’а, вы сможете сказать устройству: "куртка закрыта, установите её". Таким образом, вы сможете обновить оригинальную игру в Play Market’е с помощью мода. Говоря простыми словами — вы лжёте своему устройству.

Для получения дополнительной информации читайте: // скоро тут будет ссылка

4. Я хочу научиться моддить, но я не понимаю что делать. Что означает DLL и .so или .NET и IDA?

Вот мы и подошли к главной причине, по которой вы сюда зашли.

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

1) DLL-запускаемая игра

Если в игре запущены библиотеки DLL, вам нужно будет модифицировать их. Для этого случая вам нужны такие программы, как

Рекомендуеме туториалы: // ссылки на туториалы скоро будут тут.

2) .so-запускаемая игра (IDA):
Если в игре нет библиотек DLL, то в основном она работает с файлами расширения .so. Один из них — файл

2. // скоро тут будет ссылка

3) .so-запускаемая игра (il2cpp)

Что ж, давайте перейдем к последней важной файловой системе — il2cpp. Это в основном игра, которая спроектирована как DLL-игра, но преобразована в файловую систему .so, чтобы сделать ее более сложной для модификации. Вам нужно будет сдампить оффсеты il2cpp и модифицировать его с помощью редактора

Рекомендованные инструменты:
// Скоро тут будет ссылка.

4. Я узнал, что игра работает с DLL, но когда я пытаюсь открыть DLL с помощью .NET reflector, я получил ошибки. Что делать?

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

Рекомендованные туториалы:
1. // Скоро тут будет ссылка.
2. // Скоро тут будет ссылка.

Рекомендованные инструменты:
// Скоро тут будет ссылка.

5. Несколько дополнительных советов:

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

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

Credits:
1. G-Bo (Я)
(ОН)))

— Gamehacks и другие;
2. Все, кто опубликовал инструменты / учебные пособия, перечислены в списке.

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

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

Все переводы тем по данной тематике на текущий момент:
1. Основы (эта тема);
2. APK Easy Tool

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

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