0Pricing
Ethical Hacking Academy · Урок

Структура приложений Android

Внутреннее устройство APK

«Структура приложений Android» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.

Файл APK

Приложение Android поставляется как APK (пакет Android). На самом деле это ZIP-архив, содержащий скомпилированный код, ресурсы и метаданные.

Поскольку это ZIP-архив, его можно просто распаковать и изучить содержимое — это первый шаг при тестировании безопасности мобильных приложений.

unzip app.apk -d app_extracted/

Содержимое APK

Распакованный APK содержит:

  • AndroidManifest.xml: конфигурацию приложения.
  • classes.dex: скомпилированный байткод.
  • res/ и resources.arsc: ресурсы.
  • lib/: нативные библиотеки.
  • META-INF/: сведения о подписи.

Манифест

AndroidManifest.xml объявляет компоненты, разрешения и конфигурацию приложения. В APK он представлен в двоичном формате XML, который инструменты могут декодировать.

Это самый важный файл для понимания поверхности атаки приложения.

DEX и среда выполнения

Исходный код Java/Kotlin компилируется в байткод DEX (Dalvik Executable), который хранится в classes.dex. Современный Android выполняет его с помощью ART (Android Runtime).

DEX можно преобразовать обратно в код, близкий к читаемому, чем и пользуется статический анализ APK.

Четыре компонента

Приложения Android состоят из четырёх типов компонентов:

  • Activity: экраны и пользовательский интерфейс.
  • Сервисы: фоновые задачи.
  • Приёмники широковещательных сообщений: реагируют на системные события.
  • Поставщики содержимого: предоставляют данные другим приложениям.

Экспортируемые компоненты

Компонент с атрибутом android:exported="true" может быть вызван другими приложениями. Если такой компонент выполняет чувствительные действия без проверок, он становится поверхностью атаки.

Специалисты по тестированию безопасности ищут экспортируемые Activity, сервисы и поставщики, которые раскрывают данные или выполняют привилегированные действия.

<activity android:name=".AdminActivity" android:exported="true"/>

Разрешения

Приложения запрашивают разрешения в манифесте (например, INTERNET, READ_SMS, ACCESS_FINE_LOCATION).

Слишком широкие разрешения указывают на рискованное поведение или чрезмерный доступ к данным. Пользовательские разрешения также могут быть неправильно настроены и разрешать несанкционированный доступ.

<uses-permission android:name="android.permission.READ_SMS"/>

Песочница приложения

Android изолирует каждое приложение в собственной песочнице с уникальным Linux UID. По умолчанию приложения не могут читать данные друг друга.

Уязвимости возникают, когда приложения ослабляют эту границу, например создавая доступные всем файлы или открытые поставщики содержимого.

Хранение данных приложения

Установленное приложение хранит личные данные в /data/data/<package>/: базы данных, общие настройки и файлы.

На устройстве с root-доступом или через резервные копии специалист по тестированию безопасности изучает этот каталог в поисках небезопасно хранящихся секретов. Этой теме посвящён один из следующих уроков.

/data/data/com.example.app/

Подпись

Каждый APK имеет цифровую подпись; она находится в META-INF/. Android проверяет её при установке и обновлении.

Если Вы изменяете и заново упаковываете приложение, его необходимо подписать повторно, поэтому разработчики используют подпись для обнаружения вмешательства.

Нативные библиотеки

Критичная для производительности или обфусцированная логика может находиться в нативных библиотеках (файлах .so) в каталоге lib/; они скомпилированы из C/C++.

Эти библиотеки не входят в DEX, поэтому требуют отдельного анализа с помощью нативных дизассемблеров. Иногда разработчики прячут здесь секреты, ошибочно полагая, что нативный код труднее исследовать.

lib/arm64-v8a/libnative.so

Быстрая проверка

Вспомните, какой атрибут манифеста открывает компонент для других приложений.

Итоги

Теперь Вы понимаете структуру приложений Android:

  • APK — это ZIP-архив, содержащий AndroidManifest.xml, classes.dex, ресурсы и данные подписи.
  • В приложениях используются четыре компонента; экспортируемые компоненты являются поверхностью атаки.
  • Разрешения и отдельная для каждого приложения песочница регулируют доступ; личные данные находятся в /data/data/.
  • APK подписываются, чтобы обнаруживать вмешательство.

Далее Вы выполните декомпиляцию APK в рамках статического анализа.

Часто задаваемые вопросы

Урок «Структура приложений Android» бесплатный?

Да — полный текст урока «Структура приложений Android» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.

Чему я научусь в уроке «Структура приложений Android»?

Внутреннее устройство APK Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?

Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Структура приложений Android»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?

Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Структура приложений Android
  2. Статический анализ APK
  3. Динамический анализ с Frida
  4. Небезопасное хранение и обмен данными
← Назад к Ethical Hacking Academy