Аналог fiddler для android

Перехват HTTPS-траффика между Android-устройством и внешним сервером


Иногда бывает любопытно подсмотреть, что пересылают туда-сюда разные Android-приложения по HTTP и HTTPS протоколам. Иногда даже при разработке собственного ПО удобно видеть весь трафик в реальном времени. Для реализации этих задач давно придумано много хороших программ, таких, к примеру, как Charles или Fiddler2. На самом деле их намного больше, вот только две вышеуказанные дают возможность нормально просматривать не только HTTP, но и HTTPS.

Трудности начинаются тогда, когда речь заходит о перехвате трафика между Андроид-устройством и внешним сервером. В случае незашифрованного (HTTP-протокол) трафика всё весьма тривиально (вот и инструкция есть) — разрешаем Fiddler2 внешние соединения, в Андроиде устанавливаем прокси сервером адрес нашей машины с Fiddler2 — и вуаля, всё работает. А вот на настройку перехвата HTTPS-трафика у меня ушло чуть больше времени.

Теория

Итак, в чём же сложность? В том, что при использовании протокола HTTPS клиент по-умолчанию проверяет, а действительно ли тот сервер, к которому он подключился, является нужным. Для этого используются сертификаты. И вот у настоящего сервера этот сертификат, понятное дело, тоже настоящий и соответствует открытому URL, а вот у нашего прокси — нет. Для решения этой проблемы в десктопных операционных системах в таких случаях есть возможность сгенирировать в Fiddler2 поддельный сертификат, импортировать его в доверенные — и теперь клиент всегда будет верить, что соединение с Fiddler2 вполне безопасно. К сожалению, с мобильным устройством такой легкий финт ушами не прошел.

Во-первых, возможности импортировать внешний сертификат в Андроиде версий младше 4.0 нет. Есть какие-то не внушающие доверия варианты с рутоваными девайсами — но это не наш путь.
Во-вторых, в Андроид даже версии 4.0 импортировать сертификат Fiddler2 не получается. Дело в том, что генерируемый по-умолчанию сертификат не соответствует каким-то там Андроидовским критериям безопасности и не устанавливается. Его нужно генерировать специальным образом.
В-третьих, совсем даже не факт, что все подряд программы сразу поверят поддельному сертификату. Есть нюансы.

Практика

  1. Берём устройство с Андроидом версии 4.0 или выше. Нет, девайс с 2.3 не подойдет. Да, эмулятор версии 4.0 подойдет.
  2. Устанавливаем на компьютер последнюю версию Fiddler2.
  3. Устанавливаем специальные библиотеки генерации Андроид-совместимого сертификата безопасности отсюда.
  4. Экспортируем из Fiddler2 сертификат безопасности («Tools->Fiddler Options->HTTPS->Export root certificate to Desktop»). Кладём на флешку, в корень (ну или на эмулятор, если вы используете его).
  5. На Андроиде добавляем сертификат безопасности в доверенные(«Settings > Security > Install from SD card»)

Запускаем Fiddler2, разрешаем в настройках внешние коннекты
.

На Андроиде в настройках сети прописываем в качестве прокси адрес нашей десктопной машины с Fiddler2.

  • На Андроиде открываем браузер, вводим google.com — и видим запрос с ответом в окне Fiddler2.
  • Итак, с браузером получилось. К сожалению, не все программы столь доверчивы, как браузер. К примеру, в моей собственной софтине, где я использую Apache HTTP Client, способ не прокатил — плевал апачевский клиент на доверенные сертификаты операционки. В этом случае мне пришлось отключить эту проверку вручную, таким вот образом:

    где EasySSLProtocolSocketFactory взят отсюда и разрешает доверие к любым сертификатам.
    Не безопасно, только для отладки!

    После этого трафик моей программы стал также успешно отображаться в Fiddler2.

    Источник

    Аналоги Fiddler

    Fiddler — это прокси-сервер, который регистрирует весь HTTP (S) трафик между вашим компьютером и интернетом. Fiddler позволяет вам проверять весь трафик HTTP (S), устанавливать так называемые точки разрыва, отслеживать входящие или исходящие данные. Fiddler включает мощную подсистему сценариев, и может быть расширена с использованием любого языка платформы .NET.

    Fiddler захватывает трафик HTTP и HTTPS и регистрирует его для просмотра пользователем.

    Fiddler является бесплатной программой и может отлаживать трафик практически из любого приложения, включая Internet Explorer, Mozilla Firefox, Opera и многие другие.

    Альтернативы для Fiddler

    Android iOS (iPhone / iPad)

    Charles — это прокси-сервер HTTP / HTTP-монитор / обратный прокси-сервер, который позволяет разработчику просматривать все данные.

    • Платная Windows Mac OS

    Charles — это прокси-сервер HTTP / HTTP-монитор / обратный прокси-сервер, который позволяет разработчику просматривать весь трафик HTTP и SSL / HTTPS между его компьютером и Интернетом.Он включает в себя запросы, ответы и заголовки HTTP (которые содержат файлы cookie и информацию о кэшэ).

    mitmproxy — это поддерживающий SSL посредник для HTTP.

    • Бесплатная Windows Mac OS

    mitmproxy — это поддерживающий SSL посредник для HTTP. Он предоставляет консольный интерфейс, который позволяет проверять и редактировать потоки трафика на лету. Он также включает в себя mitmdump, инструмент командной строки, который предоставляет tcpdump-подобный интерфейс для сохранения, просмотра и манипулирования HTTP-трафиком.

    Zed Attack Proxy (ZAP) — это простой в использовании интегрированный инструмент для тестирования на проникновение для поиска уязвимостей в веб-приложениях.

    • Бесплатная Windows Mac OS

    Zed Attack Proxy (ZAP) — это простой в использовании интегрированный инструмент тестирования на проникновение для поиска уязвимостей в веб-приложениях.

    Инструмент тестирования API, позволяющий веб-разработчикам создавать и тестировать пользовательские HTTP-запросы.

    • Бесплатная Windows Mac OS

    Инструмент тестирования API, позволяющий веб-разработчикам создавать и тестировать пользовательские HTTP-запросы.

    Приложение и инструмент диагностики связи устройства для лучшего отслеживания ошибок и обеспечения качества.

    • Условно бесплатная iPhone

    apptalk.ninja — это отличный, простой в использовании инструмент для разработчиков приложений, который отслеживает и устраняет проблемы с коммуникацией своих приложений по беспроводной сети.

    NetworkMiner — это инструмент перехвата и анализа сетевого трафика (NFAT) для Windows.

    • Условно бесплатная Windows

    NetworkMiner — это инструмент перехвата и анализа сетевого трафика (NFAT) для Windows. NetworkMiner может использоваться в качестве пассивного сетевого анализатора / инструмента захвата пакетов, чтобы обнаруживать операционные системы, сеансы, имена хостов, открытые порты и т. д., не помещая трафик в сеть. NetworkMiner также может анализировать файлы PCAP для автономного анализа и для регенерации / повторной сборки переданных файлов и сертификатов из файлов PCAP.

    SmartSniff — это анализатор пакетов, который захватывает пакеты TCP / IP и отображает их как последовательность диалогов между клиентами и серверами.

    SmartSniff — это анализатор пакетов, который захватывает пакеты TCP / IP и отображает их как последовательность диалогов между клиентами и серверами. Вы можете просматривать диалоги TCP / IP в режиме Ascii (для текстовых протоколов, таких как HTTP, SMTP, POP3 и FTP) или в виде шестнадцатеричного дампа (для нетекстовых базовых протоколов, таких как DNS). Приложение может захватывать пакеты TCP / IP в вашей сети без установки драйвера захвата (работает только для Windows 2000 / XP или выше).

    HttpFox отслеживает и анализирует весь входящий и исходящий трафик HTTP между браузером и веб-серверами.

    • Бесплатная Windows Mac OS

    HttpFox отслеживает и анализирует весь входящий и исходящий HTTP-трафик между браузером и веб-серверами.

    Lighthouse — это автоматизированный инструмент с открытым исходным кодом для повышения качества веб-страниц.

    • Бесплатная Windows Mac OS

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

    James — это HTTP-прокси, который позволяет разработчикам просматривать и перехватывать запросы.

    • Бесплатная Windows Mac OS

    James — это прокси-приложение для веб-отладки.

    Что в этом списке?

    В списке находится программы которые можно использовать для замены Fiddler.

    Это аналоги похожие по функционалу на Fiddler, которые заменяют программу частично или полностью. Этот список содержит 10 замен.

    С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone

    Источник

    Битва Charles и Fiddler: как тестировать с комфортом?

    Всем привет! Меня зовут Ксения Мерзлозубова, и я тестирую мобильные приложения в компании ATI.SU.

    Для тестирования большинства задач мобильному тестировщику необходим сниффер — инструмент для перехвата и анализа трафика. Сейчас существует множество снифферов, но самые популярные — это Charles и Fiddler. В этой статье я опишу их достоинства и недостатки, обращу внимание на фичи, удобство использования, дизайн и еще некоторые нюансы. Снифферы всегда помогают мне при ручном тестировании, поэтому надеюсь, что и вы сможете выбрать один из них или будете использовать все.

    Добавлю, что у Fiddler существует 2 версии: Classic и Everywhere. Расскажу про обе.

    Charles

    Тестировщики обычно называют его «Чарльз» или ласково «Чарлик». Для начала обсудим основные плюсы этого сниффера.

    Плюсы

    Кроссплатформенность. Есть версии на Mac OS, Windows и Linux. Это очевидное преимущество, если каждый из ваших коллег выбрал себе рабочую ОС по душе, и нужен общий инструмент для тестирования.

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

    Панель инструментов

    Классификация запросов по хостам. У сниффера есть экраны Structure и Sequence. На экране Sequence перехваченные запросы отображаются последовательно, а на экране Structure еще и с группировкой по хостам. Для удобства можно настроить фокус на определенный хост. Тогда остальные запросы попадут в группу Other hosts. Этот вариант подойдет, если вы тестируете небольшую группу запросов к одному хосту, а остальные в текущий момент не важны.

    Возможность экспортировать настройки. Например, можно попросить коллегу экспортировать настройки Charles и загрузить их себе, чтобы не настраивать все опции вручную. Настройки экспортируются в формате xml.

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

    Современный интерфейс. В отличие от Fiddler Classic, у которого интерфейс напоминает десктопные приложения из 2000-х, Charles выглядит актуальнее.

    Минусы

    Нет возможности наложить таймаут на запрос. При тестировании часто требуется проверить, как поведет себя конкретный запрос при задержке ответа и нестабильном интернете. К сожалению, Charles позволяет создать такую задержку только для хоста. Настройка влияет на все запросы указанного хоста, а их может быть очень и очень много. Найти настройку можно так: Proxy — Trottle Settings.

    Trottle Settings

    Нет возможности экспортировать сессию в формате txt или json. Теперь под «сессией» я подразумеваю запрос и ответ вместе, одним файлом. Charles предлагает форматы chls, csv, trace, har и другие.

    Форматы экспорта сессии

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

    Это платный инструмент. В отличие от Fiddler Classic, у Charles бесплатный только триальный период в 30 дней. Однако, этот минус сомнительный, т.к. хороший инструмент и должен быть платным.

    Fiddler Classic

    Этот инструмент долгое время был моим любимчиком, так как с него я начинала изучение снифферов.

    Плюсы

    Удобная подмена ответов. Чтобы подменить ответ, в Fiddler Classic достаточно перетащить запрос на закладку AutoResponder. Далее можно выбрать вариант ответа в Rule Editor или нажать Edit Response и дать волю фантазии.

    AutoResponder в Fiddler Classic

    Для сравнения, чтобы подменить ответ в Charles, придется:

    Копировать url; Добавить настройку подмены (Rewrite).

    Вставить скопированный url.

    Создать новое правило подмены (Rewrite rule) для url.

    Выбрать тип подмены. Например, Body или Status.

    Выбрать, в запросе или в ответе сделать подмену.

    Допустим, вы подменяете тело ответа (Body). Тогда нужно заготовить измененное тело заранее и вставить в поле Value.

    Rewrite в Charles

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

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

    Возможность цветового выделения запросов. Для наглядности, можно выделить запрос другим цветом. В Charles я не нашла подобной функции.

    Бесплатный инструмент. Из трех инструментов, которые я сравниваю, только Fiddler Classic абсолютно бесплатно можно скачать с официального сайта.

    Два способа редактирования запросов. В Fiddler и Charles есть аналогичные способы редактирования запросов. Они позволяют менять любую часть запроса. Покажу их на скриншотах ниже.

    Редактирование запроса в Fiddler Classic Редактирование запроса в Charles

    Однако в Fiddler есть и второй способ: использование редактора запросов Composer. Основное преимущество этого способа в том, что в Composer есть лог измененных и выполненных запросов. В нем очень просто найти запрос, который вы меняли ранее и вернуться к его редактированию.

    Документация. Просто почитайте ее на официальном сайте.

    Минусы

    Только под Windows. Для других ОС на официальном сайте Fiddler предлагается скачать Fiddler Everywhere, о котором я расскажу позже в этой статье.

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

    Редактирование ответа только в текстовом формате. В AutoResponder есть встроенный редактор ответа. Если ответ содержит множество вложенных структур и полей, то читать его в текстовом виде крайне неудобно, а редактирование в формате json отсутствует. Также нет поиска по тексту в редакторе, поэтому быстро найти нужное поле не получится. Однако, выход есть — можно использовать отдельный текстовый файл для подмены ответа.

    Fiddler Everywhere

    Перейдем к новому Fiddler. Судя по списку релизов на официальном сайте, этот сниффер появился в 2018 году.

    Плюсы

    Кроссплатформенность. В отличие от предшественника, у Fiddler Everywhere есть версии под Mac OS, Windows и Linux.

    Удобные фильтры запросов. Перехваченные запросы отображаются на закладке Life Traffic. Там можно настроить, какие столбцы показывать, а какие скрывать. Также есть фильтры по каждому столбцу. Если использовать фильтры по нескольким столбцам, то они применяются вместе.

    Life Traffic

    Сохранение сессий внутри инструмента — это преимущество по сравнению с Charles и Fiddler Classic, где сессии нужно экспортировать в файл для сохранения.

    Отправка сессий другим пользователям. В Fiddler Everywhere можно поделиться сессией с коллегой, указав его email, если он тоже пользуется этим инструментом. Тут «сессия» — это один или несколько запросов.

    Современный интерфейс. В отличие от Fiddler Classic, этот сниффер может похвастаться более актуальным интерфейсом, который напоминает привычный многим тестировщикам Postman.

    Улучшенный Composer. В Fiddler Everywhere редактор запросов Composer получил функционал и дизайн, аналогичный Postman, за исключением некоторых функций. Например, нет возможности использовать переменные, писать скрипты или использовать раннер для запуска коллекций.

    Сохранение коллекций. В отличие от Charles и Fiddler Classic в этом сниффере можно сохранять запросы в коллекции и давать им названия.

    Документация. У Fiddler Everywhere есть подробная документация на официальном сайте.

    Минусы

    Нет брейкпоинтов. Брейкпоинты позволяют останавливать выполнение запроса и на ходу изменять его. Многие тестировщики привыкли к ним в Charles и Fiddler Classic. На текущий момент есть просьбы пользователей сделать breakpoints к команде разработчиков Progress Telerik. Вот еще пример. Судя по ответам, этот функционал есть в планах на будущее.

    Платный инструмент. У сниффера есть бесплатный триальный период в 30 дней, а далее можно выбрать тарифный план.

    Дополнительно

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

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

    Если у вас есть, что сказать по теме статьи, буду рада комментариям!

    Источник

    Читайте также:  Beebox android tv прошивка
    Оцените статью