Разберем файл apk.
Создадим новый проект Android приложения. Все оставляем по умолчанию. Запустим его, ну и как обычно видим TextView с надписью "Hello World, ExampleAppActivity!". Теперь разложим приложения.
1) Структура приложения. Для этого нам нужен пакет apktool - http://code.google.com/p/android-apktool. Отсюда качаем файлы apktool-install-windows-r04-brut1.tar.bz2 (или под другую ОСь) и apktool1.4.2.tar.bz2. Распаковываем их в одну папку и настроим путь в нее. Далее используем консоль. Копируем из нашего приложения/bin файл apk (ExampleApp.apk) и даем команду:
apktool d ExampleApp.apk ExampleApp.
Ну теперь имеем папку ExampleApp - это структура программы. Что мы тут видим - почти все кроме исходного кода, так как декомпилируем его в smali.
2) Исходный код - нам нужно dex2jar
dex2jar - http://code.google.com/p/dex2jar/ нужно скачать dex2jar-0.0.9.2-SNAPSHOT.zip (это последняя версия на данный момент). Распаковываем это все в 1-ну папку и настраиваем путь. Далее даем команду dex2jar ExampleApp.apk На выходе имеем jar файл. Ну а дальше делаем с ним что душе угодно
3) Разлаживаем jar
Качаем jd-gui - http://java.decompiler.free.fr/?q=jdgui. Запускаем его и открываем полученный ранее jar файл.
Тут есть одна особенность - на картинке видно что в процедуре setContentView стоит непонятное число, у меня 2130903040. Это идентификатор - зайдите в class R и увидите что под данным числом стоит:
public static final class layout
{
public static final int main = 2130903040;
}
Вот в принципе и все. Я считаю декомпилирование прекрасным способом учиться. Но при это не забываем про авторское право.
Создадим новый проект Android приложения. Все оставляем по умолчанию. Запустим его, ну и как обычно видим TextView с надписью "Hello World, ExampleAppActivity!". Теперь разложим приложения.
1) Структура приложения. Для этого нам нужен пакет apktool - http://code.google.com/p/android-apktool. Отсюда качаем файлы apktool-install-windows-r04-brut1.tar.bz2 (или под другую ОСь) и apktool1.4.2.tar.bz2. Распаковываем их в одну папку и настроим путь в нее. Далее используем консоль. Копируем из нашего приложения/bin файл apk (ExampleApp.apk) и даем команду:
apktool d ExampleApp.apk ExampleApp.
Ну теперь имеем папку ExampleApp - это структура программы. Что мы тут видим - почти все кроме исходного кода, так как декомпилируем его в smali.
2) Исходный код - нам нужно dex2jar
dex2jar - http://code.google.com/p/dex2jar/ нужно скачать dex2jar-0.0.9.2-SNAPSHOT.zip (это последняя версия на данный момент). Распаковываем это все в 1-ну папку и настраиваем путь. Далее даем команду dex2jar ExampleApp.apk На выходе имеем jar файл. Ну а дальше делаем с ним что душе угодно
3) Разлаживаем jar
Качаем jd-gui - http://java.decompiler.free.fr/?q=jdgui. Запускаем его и открываем полученный ранее jar файл.
Тут есть одна особенность - на картинке видно что в процедуре setContentView стоит непонятное число, у меня 2130903040. Это идентификатор - зайдите в class R и увидите что под данным числом стоит:
public static final class layout
{
public static final int main = 2130903040;
}
Вот в принципе и все. Я считаю декомпилирование прекрасным способом учиться. Но при это не забываем про авторское право.


Комментариев нет:
Отправить комментарий