Привет Гость! Ты можешь: Войти или зарегистрироваться |
|
10.05.2013, 19:38 Apk на JarGoogle использует расширение .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++ и анализировать код со всеми удобствами.
о, привет |
|