Отладка iPhone с Mac

Это руководство ведёт от телефона с установленным Chute к окну на Mac, показывающему расшифрованные запросы этого телефона с телами запросов и ответов, готовые к фильтрации и экспорту. Оно связывает воедино то, у чего есть свои справочные страницы — CA, список хостов, запись, канал управления, Dashboard, — в том порядке, в каком вы их на самом деле делаете, и на каждом шаге говорит, что вы должны видеть, прежде чем идти дальше.

Вам понадобятся:

  • Chute iOS на телефоне, с лицензией. Расшифровка HTTPS и захват тел на iPhone лицензируются; без лицензии всё ниже всё равно подключается, но строки HTTPS остаются непрозрачными, а вкладки данных нельзя выбрать. См. Лицензия и активация.
  • Chute Dashboard на Mac — бесплатно, без лицензии.
  • USB-кабель (рекомендуется: ничего не нужно открывать в сети, и работает в сотовой сети) либо телефон и Mac в одной сети Wi-Fi.

Если вы предпочитаете ничего не ставить на Mac, веб-консоль показывает те же соединения, тела и перезаписи в браузере и требует на телефоне только external-http-controller. Шаги 1–3 ниже применимы без изменений; с шага 4 следуйте вместо этого Как открыть веб-консоль.

1. Установите CA и доверьте ему

На телефоне, в редакторе конфигурации: MITM → Настроить CA → Создать новый CA-сертификат, затем Установить CA-сертификат в систему, затем доверьте ему в Настройки → Основные → Об этом устройстве → Доверие сертификатам. Полный порядок действий, включая шаг, который все пропускают, — на странице Расшифровка HTTPS.

Вы должны видеть: страница сертификата показывает Доверенный CA-сертификат. Если там Недоверенный, переключатель доверия в разделе «Доверие сертификатам» ещё выключен — пока он не включён, ничего дальше не заработает.

2. Скажите, какие хосты расшифровывать

Chute расшифровывает только те хосты, что вы перечислили. В разделе MitM редактора (том, где Настроить CA) добавьте хосты, которые хотите видеть. Начинайте узко — с API-хоста приложения, которое отлаживаете, — а не с *: каждый расшифровываемый хост стоит процессорного времени телефона, а некоторые приложения закрепляют свои сертификаты и ломаются при расшифровке. *.apple.com лучше исключить с самого начала.

[MITM]
enable = true
hostname = api.example.com, *.example.net, -*.apple.com

Грамматика — порты, исключения -, ограничение /path — на странице Расшифровка HTTPS. Позже можно добавлять и убирать хосты из панели Правила MitM в Dashboard, наблюдая эффект, и переносить рабочие в конфигурацию.

3. Включите расшифровку и запись

На панели управления телефона два переключателя:

  • MitM — расшифровка включена для хостов из шага 2.
  • Запись трафика — записывать тела запросов и ответов (параметр replica). Без него Dashboard показывает каждое соединение с правилом и политикой, но без данных.

Оба можно позже переключить и с панели инструментов Dashboard, так что не беда, если забудете сейчас. Ни один не переживает перезапуск, если его нет в конфигурации (replica = true в [General], enable = true в [MITM]), а на iPhone оба лицензируются: без лицензии движок отказывает им, что бы ни было написано в конфигурации.

4. Разрешите Dashboard подключаться

В редакторе конфигурации: Внешний контроллер.

  1. Включите Доступ внешнего контроллера — в сноске под ним написано Разрешить подключение Chute Dashboard/Chute CLI.
  2. Введите Порт (любой свободный; 6170, если предпочтений нет) и собственный Пароль.
  3. Разрешить доступ по Wi-Fi: для USB оставьте выключенным. Включайте только если будете подключаться по Wi-Fi — это открывает слушатель всем в этой сети, у кого есть пароль.
  4. Сохраните и запустите (или перезапустите) туннель.

Вы должны видеть: панель управления показывает Порт внешнего доступа: 6170 (ваш порт). Если строки нет, туннель работает не с сохранённой конфигурацией — перезапустите его.

5. Подключите Dashboard

Подключите телефон к Mac кабелем и, если телефон спросит, нажмите Доверять этому компьютеру. Откройте Chute Dashboard; в окне Новая панель мониторинга выберите Подключиться по USB, выберите телефон в поле Устройство:, введите Порт из шага 4 и Пароль, затем подключитесь.

Вместо этого по Wi-Fi: Подключиться к удалённому компьютеру, где Хост = адрес телефона (Настройки → Wi-Fi → ⓘ, IP-адрес), и те же порт и пароль.

Вы должны видеть: новое окно Dashboard, список Активно которого заполняется по мере того, как телефон устанавливает соединения. Если пусто, попользуйтесь телефоном несколько секунд. Здесь могут пойти не так две вещи: Неверный пароль и недоступный телефон (неверный адрес, доступ по Wi-Fi выключен, туннель не запущен) — окно всё равно открывается и по Wi-Fi заканчивается сообщением Подключение закрыто, а по USB остаётся на Подключение… и повторяет попытки, пока телефон не ответит. Подробности — на странице Dashboard.

6. Проверьте переключатели панели инструментов

Вверху списка «Активно» — два переключателя из шага 3, какими их видит Dashboard:

  • Запись трафика должна показывать Отключить запись трафика — запись включена. Если там Включить запись трафика, щёлкните её.
  • Включить MitM (N правил) должен показывать Отключить MitM (N правил) — расшифровка включена, а N — число хостов из шага 2. Если на кнопке нет счётчика «(N правил)», список хостов до телефона не дошёл: проверьте шаг 2 и перезапустите туннель.

7. Воспроизведите и найдите запрос

Сделайте в приложении то, чей трафик хотите увидеть. Затем сузьте список панелью фильтров над ним: введите хост в Фильтр по хосту/URL… — поле Фильтр на панели инструментов ищет то же самое — или отметьте Только MitM, чтобы оставить лишь расшифрованные строки.

Вы должны видеть: строки для вашего хоста с M в столбце Флаги. Столбец Метод показывает тип соединения — HTTPS, — а не глагол: строка запроса и строка состояния — первые строки вкладок Заголовки запроса и Заголовки ответа. Выберите одну: на вкладке Заголовки запроса — заголовки, параметры запроса и cookies; Данные ответа показывают тело — как Текст, пока вы не выберете JSON для дерева или Изображение для картинки.

Если у строк вашего хоста нет M, соединение не расшифровано. По убыванию вероятности: хоста нет в списке (или шаблон не совпадает — api.example.com не покрывает www.example.com); MitM выключен; CA установлен, но не доверен (само приложение будет показывать ошибки сертификата); приложение закрепляет сертификат (исключите хост и смиритесь, что внутрь не заглянуть); приложение говорит по HTTP/3 поверх QUIC, который расшифровать нельзя — задайте block-quic, чтобы вернуть его на TCP.

Если у строки есть M, но Данные запроса и Данные ответа нельзя выбрать, ничего не захвачено: запись была выключена, когда шло это соединение (включите, воспроизведите снова), либо хост отфильтрован [Replica] на телефоне. Тело больше 2 МиБ телефон отдавать отказывается; его вкладка показывает Не удалось загрузить тело сообщения.

8. Сохраните найденное

Выделите строки и щёлкните правой кнопкой по одной из них: Экспортировать выбранное как HAR… записывает их все вместе с телами в файл, который откроется в инструментах разработчика браузера, Charles или Proxyman; Копировать команду curl копирует запрос строки, по которой вы щёлкнули, чтобы повторить его из терминала Mac; Экспортировать выбранное как CSV… — для электронной таблицы. Экспортировать как bin внутри вкладки данных сохраняет одно тело как захвачено.

9. Измените что-нибудь (необязательно)

Панели представления MitM правят работающий движок. Два быстрых эксперимента:

  • Перезапись заголовков → добавьте правило для своего хоста: Запрос, Добавить, X-Debug = 1. Воспроизведите; новые строки несут H и R, а Сработавшие правила на панели сведений цитируют ваше правило.
  • Имитация ответов → ответить на эндпоинт собственным телом. Тип Тела ответа — всплывающее меню (file, text, base64 или tiny-gif), а поле рядом принимает то, что нужно этому типу: путь для file (выбрать его можно кнопкой Обзор…), само тело для text, его base64 для base64 и ничего для tiny-gif. Путь file читает телефон, а у него нет /Users/…, поэтому для телефона выберите text или base64 и положите тело в само правило, прямо в этой панели, — см. примечание в разделе Инструменты MitM. Строки с имитированным ответом несут K.

Правила, добавленные здесь, исчезают при перезапуске туннеля. Как только одно заработает, запишите его в конфигурацию — справочные страницы: Перезапись URL, Перезапись заголовков, Перезапись тела, Имитация ответов.

Когда закончите

  • Выключите Запись трафика или задайте replica = false: тела копятся на телефоне всё время, пока включена запись.
  • Выключите обратно Разрешить доступ по Wi-Fi, если включали.
  • Оставьте CA установленным, если будете повторять; иначе удалите его в Настройки → Основные → VPN и управление устройством.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""