Привет Гость!
Ты можешь:
Войти или зарегистрироваться

Забыл пароль
Регистрация
Меню сайта
Главная страница Каталог файлов Всё для моддинга Новости Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [174]
Уроки по переводу java игр [15]
Программы для компьютера [100]
Программы для телефона [82]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Модификация смартфонных игр

10.05.2013, 19:38

Apk на Jar


Google использует расширение .APK для приложений Android. На первый взгляд этот формат не поддерживается на ПК. Но он является, ни чем иным как .ZIP файлом, замаскированным под .APK. И его легко открыть, изменив расширение. После этого вы сможете открыть и просмотреть содержимое файла приложения.

Если же вы хотите получить доступ к исходному коду, вам необходим самый важный файл – classes.dex. Но он тоже зашифрован. Для того, что бы получить доступ к его содержимому, необходимо воспользоваться программой Dex2Jar и JD-GUI.
После того как вы скачали эти две программы, распакуйте их. Скопируйте файл classes.dex в папку с Dex2Jar и выберите в свойствах classes.dex «открыть с помощью… – Dex2Jar», файл будет перепакован в .jar, который можно уже открыть для редактирования в JD-GUI.

Также можно использовать программу для "вскрытия" *.apk - файлов APKTool

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

На данный момент программа работает под управлением ОС Linux, Windows, MacOS. При помощи данной утилиты не может быть вскрыто приложение framework-res.apk, поскольку в нем используются некие собственные секретные разработки Google, но обещают, что в дальнейшем это будет исправлено.

Для использования программы требуются базовые знания по SDK, aapt, PATH, smali.

На компьютере должно быть установлено JDK (Java SE Development Kit)

Kачаем и устанавливаем:

JDK (Java SE Development Kit)
APKTool - достаточно просто распаковать этот архив, например в корень диска C:
Распаковка apk
Для распаковки apk-файла в командной строке выполняем:
C:\ApkTools\apktool-d.cmd С:\app\my_app.apk
(my_app.apk название приложения) (Так же можно просто изменить apk на zip)
В результате в каталоге, где лежал наш apk появится папка my_app в которой будет находиться содержимое нашего apk.
После внесения необходимых изменений необходимо собрать новый apk.

Если же вы хотите получить доступ к исходному коду, вам необходим самый важный файл – classes.dex. Но он тоже зашифрован. Для того, что бы получить доступ к его содержимому, необходимо воспользоваться программой Dex2Jar и JD-GUI.

После того как вы скачали эти две программы, распакуйте их. Скопируйте файл classes.dex в папку с Dex2Jar и выберите в свойствах classes.dex «открыть с помощью… – Dex2Jar», файл будет перепакован в .jar, который можно уже открыть для редактирования в JD-GUI.

Упаковка apk

Выполняем сборку нового apk-файла.
В командной строке запускаем:
C:\ApkTools\apktool-b.cmd С:\app\my_app
После сборки в С:\app\my_app должна появиться папка build\apk. В ней есть всё, что упаковывается в apk, кроме папки C:\app\my_app\assets.
Итак, копируем в build\apk папку assets
Далее выделяем все файлы/папки, жмем на любом правой кнопкой, в появившемся меню выбираем WinRAR - Добавить в архив...
На вкладке Общие - формат архива: ZIP
На вкладке файлы - поле "Файлы, добавляемые в архив без сжатия" вставить:
*.arsc *.png *.ogg
У полученного ZIP - архива меняем расширение на apk.
Подписываем полученный apk:
C:\ApkTools\Sign.cmd my_app.apk
Sign.cmd внутри архива apk создаст папку META-INF, в которой будут храниться сертификат, контрольные суммы и подписи всех файлов.
Если положить apk непосредственно в C:\ApkTools\, то отпадет нужда прописывать полные пути в командной строке.

Файла classes.dex, контейнер, вскрыв который можно получить исходный код приложения под Android.
Предстоит проделать два несложных этапа. Но сначала необходимо сказать в двух словах о том, что же из себя представляет формат DEX или Dalvik Executable. На самом деле это файл, содержащий в себе программный код для виртуальной машины Dalvik. Приложения для Android пишутся на языке Java, но после компиляции кода в .class-файлы, вызывается утилита dx, которая транслирует их в один файл classes.dex, являющийся основной составляющей APK файла.

Поэтому целью первого этапа обратной разборки будет обратное преобразование файла DEX в формат JAR (Java Archive), zip-подобный архив с набором файлов на языке Java и метаданными. Для выполнения такого преобразования понадобится утилита dex2jar. Пользоваться ею очень просто – достаточно скормить утилите нужный APK-файл (или предварительно вынутый из него classes.dex). Для этого можно воспользоваться консолью или просто перетащить файл на батник dex2jar. Если все пройдет без проблем, то в той же директории появится файл под названием «<название приложения>_dex2jar.jar», он-то и будет нужен для второго этапа.

Второй этап представляет собой реверс инжиниринг файла JAR. Это просто zip-архив, открыв его штатным архиватором, мы увидим внутри набор файлов с расширением .class, которые являются скомпилированным Java-кодом.

Для того, чтобы удобно посмотреть их содержимое в читабельном виде, понадобится приложение Java Decompiler (JAD). Распаковываем архив, запускаем программу (она обладает графическим интерфейсом) и с её помощью открываем (Файл — Открыть) полученный на предыдущем этапе JAR-файл.

Нетрудно видеть, что мы добрались до кода приложения под Android. Здесь много служебных файлов, не очень интересных. Подсмотреть, какие классы являются стартовыми, можно в файле Manifes.xml. Чтобы сохранить все файлы в читаемом виде в одном архиве, выберите пункт File – Save All Sources. Это позволит позже загрузить их в более удобную IDE или открыть нормальным редактором вроде Notepad++ и анализировать код со всеми удобствами.
Категория: Модификация смартфонных игр | Добавил: Sancar2001
Просмотров: 4798 | Комментарии: 7 | Рейтинг: 5.0/3

Всего комментариев: 7
Спам
islommurod98   (07.06.2013 11:23)
Блин я все настроил только Jar файл при запуске говорит неправильный MIDlet-1. Что делать? Как мне узнать MIDlet-1? :(

Спам
stsyn   (07.06.2013 09:21)
islommurod98, мне кажется его там нет...

Спам
islommurod98   (06.06.2013 23:17)
Ураааа получилось :D apl Только ребята как мне найти MIDlet-1 в manifest?

Спам
islommurod98   (31.05.2013 13:20)
Не получается <_<

Спам
Shine   (19.05.2013 13:40)
ниче не понял %)

Спам
smert124   (15.05.2013 11:46)
Зачем Java Decompiller? Можно деобфусцировать и FernFlower запустить.

Спам
islommurod98   (15.05.2013 00:14)
У кого то получилось?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

Gish The Mobile Game Remake [0.1 Beta]
Комментов: 18 | Загрузок: 118
SILENT EVIL 3D 2017 DEMO - NEW! v.1.1.1
Комментов: 17 | Загрузок: 48
Amityville Horror: Mobile Game
Комментов: 0 | Загрузок: 18
SERVERSIDE Demo
Комментов: 3 | Загрузок: 52
Quakeman ORIGINS - Beta Test
Комментов: 32 | Загрузок: 48
Flappy Bird
Комментов: 0 | Загрузок: 35
Piano Tiles 2
Комментов: 0 | Загрузок: 40
L2D Android
Комментов: 10 | Просмотров: 1265
DOOM II APK
Комментов: 21 | Загрузок: 70
Gravity Defied Antology 2017 LevelPack Part 13
Комментов: 0 | Загрузок: 70
Случайный мод
1978 207 13 4.5
Статистика
Онлайн всего: 4
Гостей: 3
Пользователей: 1
Пользователи
Гости сайта
Lubertrite
[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2017 | Хостинг от uCoz