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

Захват на iOS

Захват на iPhone / iPad всегда был головной болью. Обычные инструменты, как правило, либо требуют джейлбрейка, либо умеют лишь настроить прокси (а это всё равно означает установку профиля и сертификата, и приложения с закреплением сертификата всё равно не удаётся захватить). Захват на iOS предлагает три способа без джейлбрейка, от «увидеть системные запросы без какой-либо настройки» до «весь трафик всего устройства» и «полный открытый текст одного приложения». Один из них доберётся до вашей цели.


  • Подключите устройство: подключите iPhone / iPad к компьютеру кабелем передачи данных, затем нажмите Доверять на устройстве.
  • Джейлбрейк не нужен: все три способа рассчитаны на устройства без джейлбрейка.
  • Совместимо с новыми системами: новые версии iOS (в том числе iOS 17 и выше) перешли на новый канал устройства, и подключение и захват здесь по-прежнему работают.
  • Если то же устройство также отображается в сети, выбирайте вход USB / сеть соответственно.

Ваша потребность Что использовать Что можно увидеть Нужна установка сертификата / переподпись?
Быстро увидеть, какие запросы HTTPS отправила система (адрес / статус / заголовки) Захват на уровне системы Работает и для обычных приложений (у обычных приложений тело не видно) Ни то ни другое; только диагностический профиль
Весь трафик всего устройства (включая не-HTTP, рукопожатие / SNI) Захват на сетевой карте Полные данные (по умолчанию зашифрованный текст, расшифровка по требованию) Не требуется для просмотра зашифрованного текста; переподпись нужна лишь для расшифровки конкретного приложения
Полный обмен открытым текстом (включая тело) конкретного приложения Захват на прикладном уровне Полный открытый текст одного приложения Целевое приложение нужно переподписать сертификатом разработчика

Ни один из трёх способов не требует джейлбрейка. Захват на уровне системы особенно необременителен: даже для обычных приложений и приложений из App Store вы можете увидеть, какие адреса HTTPS они запрашивают, — то, чего обычные инструменты на iPhone без джейлбрейка сделать не могут.


3. Захват на уровне системы: самый необременительный, работает и для обычных приложений

Заголовок раздела «3. Захват на уровне системы: самый необременительный, работает и для обычных приложений»

Хотите быстро увидеть, какие запросы HTTPS отправил этот iPhone, не устанавливая сертификат, не настраивая прокси и не разбираясь с закреплением сертификата? Это самый необременительный способ.

  • Перечисляет транзакции HTTP(S), которые отправляет система: метод запроса, полный URL (адрес виден открытым текстом даже для HTTPS), код статуса, заголовки запроса и заголовки ответа.
  • Не нужно устанавливать CA-сертификат, не нужно настраивать прокси, не нужно разбираться с закреплением сертификата.
  • То, сколько вы можете увидеть, ограничено самими системными диагностическими журналами:
    • Обычные приложения и приложения из App Store: как правило, видны лишь адрес запроса и заголовки запроса.
    • Приложения, подписанные сертификатом разработчика: видно полное тело запроса / ответа.

Предварительное условие: нужно установить соответствующий диагностический профиль устройства (достаточно одного раза).


4. Захват на сетевой карте: увидеть на этом устройстве всё

Заголовок раздела «4. Захват на сетевой карте: увидеть на этом устройстве всё»

Захватывайте весь сетевой трафик устройства, независимо от приложения или протокола, включая не-HTTP QUIC и собственные протоколы.

  • Что видно по умолчанию: по умолчанию это зашифрованные пакеты + метаданные (адрес назначения, порт и имя хоста SNI из рукопожатия TLS), чего достаточно, чтобы ясно видеть, «к каким местам это устройство подключалось и по какому протоколу».
  • Хотите открытый текст: примените «Расшифровать эту программу» к целевому приложению, чтобы расшифровать его открытый текст; для этого приложение должно быть переподписано сертификатом разработчика.

5. Захват на прикладном уровне: полный открытый текст одного приложения

Заголовок раздела «5. Захват на прикладном уровне: полный открытый текст одного приложения»

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

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

Предварительное условие: целевое приложение должно быть переподписано сертификатом разработчика; приложения из App Store и системные приложения нужно сначала переподписать, прежде чем использовать их как цель.


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

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

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


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

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