Перейти к содержимому

Захват на Android

Захват HTTPS на Android через прокси часто упирается в «сертификат установлен, но приложение всё равно его не принимает». На новых системах приложения по умолчанию не доверяют пользовательским сертификатам, а приложения с закреплением сертификата захватить вообще не получится. Захват на Android идёт другим путём: захват всего устройства с автоматической расшифровкой, и сертификат на телефон устанавливать не нужно в принципе. Поддерживаются как физические устройства, так и эмуляторы, и даже у приложений с закреплением сертификата или собственным шифрованием открытый текст читается изнутри.


  • Подключите устройство: подключите его к компьютеру кабелем данных и включите отладку по USB; эмуляторы обычно определяются автоматически.
  • Требуется root: все три способа требуют устройства с root-доступом.
  • Сертификат устанавливать не нужно: ни один из способов не является методом с человеком-посередине на основе прокси, поэтому устанавливать сертификат на телефон не нужно, — именно поэтому они менее хлопотны, чем захват через прокси на Android. Когда сертификат всё же нужен, устройство с root-доступом также может установить доверенный сертификат автоматически, избавляя вас от ручных шагов.
  • Работает из коробки: вспомогательные компоненты, нужные для захвата, скачиваются и кэшируются автоматически в зависимости от архитектуры устройства, без ручной настройки окружения с вашей стороны.

Захват трафика внутри Android эмулятора на компьютере почти не отличается от захвата на физическом устройстве, а зачастую даже проще:

  • Автоопределение: эмуляторы распространённых брендов обнаруживаются автоматически, без кабеля данных и без ручного подключения (USB нужен только для физических устройств).
  • Обычно уже с root-доступом: эмуляторы, как правило, изначально с root-доступом или получают его в один клик, что удобно удовлетворяет требованию для захвата.
  • Предпочтителен «ключ сетевой карты»: системное ядро эмулятора часто старее и может не поддерживать «захват на сетевой карте», поэтому просто выберите ключ сетевой карты — у него лучшая совместимость с эмуляторами.

Всё остальное так же, как и с физическим устройством: выберите устройство эмулятора и захватывайте одним из способов ниже.


Ваша ситуация Что использовать Примечания
Старое устройство / эмулятор / не уверены, насколько оно новое Ключ сетевой карты (рекомендуемый по умолчанию) Лучшая совместимость; работает почти на любом устройстве с root-доступом
Более новое физическое устройство с root-доступом Захват на сетевой карте Проще всего, самодостаточен
Интересует только одно приложение, или его не удаётся расшифровать в режиме сетевой карты Захват на уровне приложения Читает открытый текст изнутри приложения, обходя закрепление сертификата / собственное шифрование

Первые два способа — это захват всего устройства с автоматической расшифровкой и без установки сертификата; третий нацелен на одно приложение и справляется даже с самыми укреплёнными из них.


4. Ключ сетевой карты (рекомендуемый по умолчанию)

Заголовок раздела «4. Ключ сетевой карты (рекомендуемый по умолчанию)»

Захватывает весь трафик на сетевой карте устройства (по умолчанию Wi-Fi) и автоматически его расшифровывает, без необходимости выбирать конкретное приложение и без установки сертификата.

  • Лучшая совместимость: не привередлив к ядру, и старые устройства и разные эмуляторы работают одинаково хорошо, что является его главным преимуществом перед захватом на сетевой карте. Когда не уверены, насколько новое устройство, это самый безопасный выбор.
  • У некоторых приложений может показываться только шифртекст: отдельные приложения, встраивающие нестандартные компоненты шифрования, могут иметь трафик, который расшифровать не получится; в этом случае переключитесь на захват на уровне приложения ниже, чтобы обработать их точечно.

Как использовать: выберите устройство → выберите сетевую карту (по умолчанию Wi-Fi) → начните захват.


Также захватывает весь трафик на сетевой карте устройства и автоматически его расшифровывает. Отличает его то, что он самодостаточен и наиболее прост в использовании (данные и информация, нужная для их расшифровки, упакованы вместе).

  • Предварительное условие: требуется более новое устройство (более новое ядро). Если устройство слишком старое и не подходит, при старте захвата вы получите чёткое сообщение «Захват на сетевой карте не поддерживается»; в этом случае просто переключитесь на ключ сетевой карты.

Как использовать: выберите устройство → выберите сетевую карту (по умолчанию Wi-Fi) → начните захват.


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

  • Не ограничен недостатками режима сетевой карты: приложения, которые не удаётся расшифровать в режиме сетевой карты (закрепление сертификата, собственное шифрование), здесь тоже отдают открытый текст, потому что чтение идёт изнутри приложения, без роли человека-посередине и без опоры на расшифровку на уровне сетевой карты.
  • Включите «трафик сокета» как запасной вариант, когда декодировать не получается: для приложений, статически линкующих / использующих собственную библиотеку, из которых обычными способами открытый текст получить не удаётся, включите этот переключатель, чтобы пойти путём более низкого уровня к данным.
  • Перезапуск целевой программы: можно сначала закрыть и заново запустить приложение, чтобы захватить его трафик на раннем старте.
  • Нацелен только на выбранное вами приложение (а не на трафик всего устройства).

Как использовать: выберите целевое приложение (из списка установленных приложений, либо укажите имя пакета / имя процесса; оставьте пустым, чтобы захватить приложение на переднем плане) → отметьте «Перезапустить целевую программу», если нужно захватить трафик запуска → начните захват.


7. Можно также использовать захват через прокси

Заголовок раздела «7. Можно также использовать захват через прокси»

Помимо трёх способов выше, Android-устройство может также использовать захват через прокси: направьте Wi-Fi-прокси устройства на эту машину, установите корневой сертификат, и вы сможете захватывать открытый текст HTTPS так же, как на компьютере, и использовать полный набор возможностей переписывания и повтора. Это подходит для отладки приложений, идущих через системный прокси, или сценариев, где нужно переписывание / повтор мобильных запросов по правилам.


  • Анализ сетевых запросов приложения на телефоне и расследование проблем с эндпоинтами, с автоматической расшифровкой всего устройства и без возни с сертификатами.
  • Просмотр с точки зрения всего устройства, к каким эндпоинтам оно или приложение реально подключалось и что отправляло.
  • Когда приложение использует закрепление сертификата, а режим сетевой карты не может его расшифровать, используйте захват на уровне приложения, чтобы точечно получить открытый текст.
  • Чтобы одновременно просматривать и редактировать (переписывание / повтор), используйте захват через прокси.

Назад к Захвату через прокси · Смотрите также: Просмотр и декодирование данных · Управление и установка сертификата