Благодаря открытости и отсутствию встроенной системы защиты (а также легкомыслию пользователей, которые бездумно соглашаются устанавливать программы из сомнительных источников, требующие от них подозрительных полномочий) в Android очень легко заводится различная малварь. Ну а наше программерское дело простое — попробовать разобрать то, что написано злокодером. Посмотрим, как это делается.

 

Декомпиляция APK-приложений

Для исследования кода в APK-приложениях необходимо декомпилировать его, то есть извлечь все данные, которые в нем содержатся. Выполнить декомпиляцию APK-приложения можно с помощью программы Apktool. Для того чтобы она нормально заработала на винде, необходимо установить утилиту apktool-install-windows-r04-brut.

Рис. 1. Содержимое папки apktool
Рис. 1. Содержимое папки apktool
Рис. 2. Декомпиляция приложения
Рис. 2. Декомпиляция приложения
 

Анализ действий, выполняемых программным кодом

Для примера рассмотрим приложение WhatsApp Messenger. В памяти подопытного мобильного устройства я нашел программу под названием «WhatsApp Messenger», которая (спойлер) на самом деле оказалась малварью под названием Android.Spy.230.origin (классификация Dr.Web).

Рис. 3. Содержимое папки WhatsApp после декомпиляции приложения
Рис. 3. Содержимое папки WhatsApp после декомпиляции приложения
Рис. 4. Обнаружение Android.Spy.230.origin — действительно, это малварь
Рис. 4. Обнаружение Android.Spy.230.origin — действительно, это малварь

Android.Spy: краткая справка

Android.Spy — семейство многофункциональных троянцев, поражающих мобильные устройства под управлением ОС Android. Распространяются на популярных сайтах (преимущественно китайских) в составе легитимных игр и приложений, которые модифицированы злоумышленниками.

Для извлечения данного приложения воспользуемся программой Android Debug Bridge. После успешного извлечения файла WhatsApp.apk его необходимо декомпилировать с помощью Apktool. Теперь перейдем к исследованию содержимого каталога приложения. Для получения основной информации (какие службы и компоненты использует приложение) изучим файл AndroidManifest.xml. Воспользуемся для этого Android Studio.

 

Шаг 1

После запуска программы Android Studio необходимо выбрать Open an existing Android Studio project и указать путь к каталогу декомпилированного приложения. На рис. 5 показан пример открытия декомпилированного приложения.

Рис. 5. Открытие декомпилированного приложения
Рис. 5. Открытие декомпилированного приложения
 

Шаг 2

В меню Project File нужно выбрать AndroidManifest.xml. На рис. 6 представлено содержимое приложения WhatsApp.

Рис. 6. Содержимое приложения WhatsApp
Рис. 6. Содержимое приложения WhatsApp
 

Шаг 3

Открыв AndroidManifest.xml, мы видим запросы, с помощью которых приложение запрашивает у мобильного устройства различные функции и права доступа. Рассмотрим их в деталях. Итак, здесь:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


9 комментариев

  1. clicker314

    16.03.2016 at 13:30

    >> Для извлечения данного приложения воспользуемся программой Android Debug Bridge. После успешного извлечения файла WhatsApp.apk его неoбходимо декомпилировать с помощью Apktool

    Было-бы не плохо показать и команды…

    Напишите пожалуйста, как работать с бинарниками (компилированный код)?

    • NightSun

      16.03.2016 at 15:18

      Напишите мне на почту все вопросы которые Вас интересуют, отвечу по возможности

  2. devbutch

    16.03.2016 at 18:19

    Оказывается вон как координально отличается реверс андроид приложений от win-оподобных.
    Чёткая структура каталогов и функций, стандартный web набор HTML/JavaScript, никаких тонн низкоуровневого кода.

  3. A.T.

    25.03.2016 at 12:17

    Все, конечно, замечательно, но написано кондово-вежливым канцелярским языком, аж приторно читать. Хуже только научные статьи от китайцев на ломанном английском. И такой, типа, вывод в конце. О котором бы только законченный дебил не догадался в самом начале.

    Сразу видно выпускника россиянского вуза. Пишет только по форме, под присмотром так называемого «руководителя». Старого совка, как правило.

    Вот раньше был «Хакер» с яйцами и желанием выступить против системы. А сегодня, человек пишет, как будто его заставили заполнить форму казенным языком и получить свою убогую зарплатку.

  4. xRaL

    26.03.2016 at 23:46

    Для начала очень даже неплохо, автору есть куда стремиться!
    Совет автору! Больше читать зарубежной литературы в данной области!

  5. panogeek

    29.03.2016 at 18:57

    Какой html, какой js? Где декомпиляция байт-кода, где dex2jar, где .smali, где вот это все? Люди, вы о чем вообще? Статья называется «Как распаковать zip-архив и поковырять в нем текстовые файлики»

    Это просто надувательство какое-то… С Желтым-прижелтым заголовком… Тьфу

    • panogeek

      29.03.2016 at 19:01

      Кто это вообще в номер пустил???
      Или все ради упоминания антивир-конторы?

      • panogeek

        29.03.2016 at 19:12

        Вы зачем неокрепшим умам мозги html-ем и джаваскриптом мозги пудрите? Как будто андройд-аппы это то же что веб-страницы… Возмутительно!

Оставить мнение

Check Also

Google уверяет, что новые версии Android реже страдают от малвари

Компания Google поделилась статистикой, согласно которой менее всего заражениям подвергают…