Как записать сессию сниффера (Сharles)?

Charles — прокси-сервер, который работает на вашем компьютере и позволяет записывать HTTP- и HTTPS-трафик подключенных устройств. Запись сессии позволит службе поддержки быстро диагностировать проблему, связанную с загрузкой или показом рекламы, поскольку содержит данные запрашиваемого блока, параметры рекламного места, информацию о баннерах, которые были показаны, и техническую информацию об устройстве.

Установить Charles

  1. Установите Charles на компьютере с официального сайта.
  2. Если при первом запуске приложение предложило автоматически настроить параметры сети, нажмите Grant Privileges.
  3. Приложение бесплатное в течение 30 дней. Если у вас есть ключ, в меню Charles выберите Help → Register Charles и зарегистрируйте приложение.

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

Настроить прокси

Чтобы приложение на компьютере могло записывать трафик мобильного устройства:

  1. В меню Charles выберите Proxy → SSL Proxying Settings.
  2. Включите опцию Enable SSL Proxying.
  3. Нажмите кнопку Add под Include Location и укажите звездочку в поле Host. Сохраните изменения.
  4. В меню Charles выберите Help → SSL Proxying → Install Root Certificate on a Mobile Device or Remote Browser. Charles отобразит IP-адрес и порт прокси-сервера, то есть IP-адрес вашего компьютера и используемый по умолчанию порт 8888.
  5. Перезапустите Charles.
  6. Подключите мобильное устройство к той же сети Wi-Fi, что и компьютер. Перейдите в настройки этой сети, выберите настроить прокси вручную и укажите IP-адрес и порт прокси-сервера.

Установить сертификат

Чтобы записывать HTTPS-трафик, установите на мобильном устройстве корневой SSL-cертификат Charles. Более подробная информация приведена в документации Charles.

  1. В системном браузере скачайте сертификат по ссылке http://chls.pro/ssl.
    Примечание. Если скачать сертификат не удается, возможно, файрвол на компьютере блокирует входящие соединения. В настройках файрвола разрешите приложению Charles принимать входящие соединения и повторите попытку.
  2. Если установка сертификата не началась автоматически, в настройках устройства найдите раздел установки сертификатов и установите сертификат Charles. Выберите тип использования «для VPN и приложений». Если потребуется установить PIN, укажите любой.
  3. Для Android версии 10 и выше настройте конфигурацию приложения (APK), которое запрашивает рекламу:
    • В каталоге res/xml создайте файл network_security_config.xml с текстом:
       <?xml version="1.0" encoding="utf-8"?>
          <network-security-config>
              <base-config>
                  <trust-anchors>
                      <!-- Trust preinstalled CAs -->
                      <certificates src="system" ></certificates>
                      <!-- Trust user added CAs -->
                      <certificates src="user" ></certificates>
                  </trust-anchors>
              </base-config>
          </network-security-config>
    • В файл AndroidManifest.xml добавьте атрибут для секции application:
      <manifest>
          ...
          <application android:networkSecurityConfig="@xml/network_security_config">
              ...
          </application>
      </manifest>

Записать сессию

Чтобы начать и остановить запись трафика, используйте кнопку  /  на панели инструментов Charles. Когда идет запись, кнопка выглядит так: .

Обновите экран приложения, на котором запрашивается реклама. Убедитесь, что в сессии появился URL для загрузки рекламы — mobile.yandexadexchange.net/v4/ad. В меню Charles выберите File → Save Session As... и сохраните файл с расширением .chls.

Совет. После завершения отладки удалите сертификат на устройстве и выключите использование прокси-сервера.