Ethical Hacking Academy · Урок

Статический анализ APK

Декомпиляция

Урок 2 из 413 шагов

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

Статический анализ APK

Статический анализ APK означает изучение его кода и ресурсов без запуска. Цель — восстановить читаемый код, похожий на исходный, из скомпилированного DEX.

Это позволяет обнаружить встроенные секреты, ошибки в логике и фактическое поведение приложения.

Декодирование с помощью apktool

apktool декодирует APK, восстанавливая читаемые ресурсы и smali — удобную для чтения форму байткода DEX. Он также декодирует двоичный AndroidManifest.xml.

Используйте его для чтения манифеста и повторной упаковки изменённых приложений.

apktool d app.apk -o app_src

Код Smali

Smali — язык, похожий на ассемблер, для байткода Dalvik. Он многословен, но позволяет вносить точные изменения, например обходить проверку, изменив сравнение.

Можно исправить smali и пересобрать APK, чтобы изменить поведение приложения.

const/4 v0, 0x1   # force a boolean to true

Получение Java с помощью jadx

jadx напрямую декомпилирует DEX в читаемый Java-код. Версия с GUI, jadx-gui, позволяет просматривать классы, искать строки и отслеживать вызовы методов.

Это самый быстрый способ понять логику приложения.

jadx-gui app.apk

Путь через dex2jar

Альтернативный конвейер преобразует DEX в JAR с помощью dex2jar, а затем открывает его в декомпиляторе Java, например в JD-GUI.

Обычно jadx выдаёт более чистый результат, но dex2jar полезен, когда у jadx возникают трудности.

d2j-dex2jar app.apk -o app.jar

Поиск секретов

Декомпилированный код часто содержит встроенные секреты: ключи API, токены, ключи шифрования и URL-адреса серверной части.

Ищите в исходном коде такие ключевые слова, как password, secret, apikey и http. Разработчики ошибочно полагают, что скомпилированный код скрывает эти данные.

grep -ri "api_key\|secret\|password" app_src/

Проверка манифеста

После декодирования манифеста проверьте:

  • Экспортируемые компоненты.
  • android:debuggable="true".
  • android:allowBackup="true" (данные можно извлечь через резервную копию).
  • Опасные или пользовательские разрешения.

Конфигурация безопасности сети

Конфигурация безопасности сети управляет поведением TLS. Конфигурация, разрешающая незашифрованный трафик или доверяющая добавленным пользователем центрам сертификации, ослабляет безопасность передачи данных.

Такие настройки значительно упрощают перехват трафика — этой теме посвящён один из следующих уроков.

<application android:usesCleartextTraffic="true">

Автоматическое сканирование с MobSF

MobSF (Mobile Security Framework) автоматизирует статический анализ. Загрузите APK, и он выдаст сведения о разрешениях, встроенных секретах, небезопасных настройках и оценке риска.

Это отличный инструмент для первичной сортировки, хотя ручная проверка по-прежнему позволяет обнаружить более глубокие проблемы.

Пересборка и повторная подпись

После изменения smali пересоберите приложение с помощью apktool и выполните повторную подпись APK (Android отклоняет приложения без подписи). Для подписи подходят такие инструменты, как apksigner и uber-apk-signer.

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

apktool b app_src -o patched.apk
uber-apk-signer -a patched.apk

Глубокие ссылки и WebViews

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

WebViews с JavaScriptInterface или загружающие ненадёжное содержимое могут сделать приложение уязвимым для внедрения и кражи данных. И то и другое часто обнаруживается при статическом анализе.

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

Вспомните, какой инструмент извлекает читаемый Java непосредственно из APK.

Итоги

Теперь Вы понимаете, как выполняется статический анализ APK:

  • Используйте apktool для работы со smali и декодированным манифестом, а jadx — для получения читаемого Java-кода.
  • Ищите секреты, зашитые в коде, и проверяйте манифест на наличие флагов экспорта, отладки и резервного копирования.
  • Проверьте конфигурацию безопасности сети; для автоматической первичной проверки используйте MobSF.
  • Измените smali, затем пересоберите и повторно подпишите приложение, чтобы протестировать подмену.

Далее Вы будете изменять работающее приложение с помощью Frida.

Можно начать бесплатно

Изучай Ethical Hacking Academy с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
31
Уроки
111

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

Урок «Статический анализ APK» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Статический анализ APK»?

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

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

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

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

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