Здравствуйте, войдите или зарегистрируйтесь
Забыли? Закрыть
Все новости
ANDROID
RSS
Android » Статьи » Хирургия Android. Разбираем classes.dex.

Хирургия Android. Разбираем classes.dex.

Новость от admin, добавлена 07 декабря 2011 года

Хирургия Android. Разбираем classes.dex.
Ну вот мы и добрались до самого вкусного во всём процессе обратной разработки – до файла classes.dex, контейнера, вскрыв который мы сможем получить (если повезет) исходный код приложения под Android.

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

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

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

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

Нетрудно видеть, что мы добрались до кода приложения под Android. Здесь много служебных файлов, не очень интересных. Подсмотреть, какие классы являются стартовыми, можно в файле Manifes.xml. Чтобы сохранить все файлы в читаемом виде в одном архиве, выберите пункт File – Save All Sources. Это позволит позже загрузить их в более удобную IDE или открыть нормальным редактором вроде Notepad++ и анализировать код со всеми удобствами.

Хирургия Android. Разбираем classes.dex.

Кстати, вот и класс, который шлет SMS на платные номера, нашелся:

Хирургия Android. Разбираем classes.dex.

Просмотров: 892

Тройка популярных новостей недели

Explay анонсировала новый планшет: Explay MID-725 09 октября Explay анонсировала новый планшет: Explay MID-725
Компания Explay анонсировала новый планшет Explay MID-725 на операционной системе Android 2.3.1. Новинка будет поставляться в классическом ...
далее
MWC 2012: пять игр для платформы NVIDIA Tegra 3 29 февраля MWC 2012: пять игр для платформы NVIDIA Tegra 3
Выставка Mobile World Congress 2012 в самом разгаре и наши сотрудники транслируют с этого мероприятия информацию не только о новинках, ...
далее
Galaxy Ace DUOS от компании Samsung 24 мая Galaxy Ace DUOS от компании Samsung
Компания Samsung не так давно презентовала нам своего флагмана и сейчас она покушаеться захватить еще один рынок и выпускает серию в серию ...
есть комментарии 1 далее
Обсуждение новости
Наверх