Учебные пособия расширенной серии «Сортировка гематемезиса» — Подробное руководство по захвату пакетов Fiddler (27) — Как Fiddler захватывает пакеты HTTPS для Android 7.0 и выше — Часть 2
Учебные пособия расширенной серии «Сортировка гематемезиса» — Подробное руководство по захвату пакетов Fiddler (27) — Как Fiddler захватывает пакеты HTTPS для Android 7.0 и выше — Часть 2

1. Введение

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

2. Вернитесь к истокам

Чтобы коренным образом решить проблему, нам просто нужно найти первопричину и не отставать от проблемы! Основная причина — targetSdkVersion. >= 24 приложения на Android Причина, по которой пакеты не могут быть перехвачены на устройствах с системой 7.0+, связана с Android Приложения после версии 7.0 по умолчанию доверяют только системным сертификатам и не доверяют пользовательским сертификатам. Тогда мы сможем найти способ установить сертификат Fiddler в каталог системных сертификатов и замаскировать его под системный сертификат. Тогда не будет проблем с невозможностью установки. перехватывать пакеты, поскольку сертификат Fiddler не является доверенным. Мы нашли основную причину. Поскольку сертификат пользователя не является доверенным, мы можем решить эту проблему, создав системный сертификат и установив его на мобильный телефон. Далее брат Хун решит задачу согласно этой идее.

1. Брат Хун ранее продемонстрировал, что он может захватывать пакеты https на телефонах Android, поскольку версия симулятора Yeshen брата Хонга для Android — 5.1.1, поэтому он может захватывать пакеты.

2. Брат Хун нажимает на кнопку Yeshen Multi-Opener в меню в правой части симулятора Yeshen, как показано на рисунке ниже:

3. Добавьте эмулятор с версией Android выше 7.0, как показано на рисунке ниже:

4. Настройте прокси-сервер и снова используйте Fiddler для захвата пакетов с помощью Baidu Mobile Assistant. Это означает, что сеть занята. Конкретным проявлением является то, что WebView в приложении не может открыть контент и не может захватить пакет приложения, как показано на следующем рисунке:

5. Результаты захвата пакетов Fiddler. В Fiddler можно увидеть большое количество соединений CONNECT, а затем ничего. Как показано ниже:

3. Экспортный сертификат Fiddler

1. Загрузите и установите инструмент захвата пакетов Fiddler. После завершения загрузки не нажимайте кнопку, чтобы открыть и запустить его (если это ваша первая установка, если вы уже установили его, не запускайте Fiddler).

2. Загрузите fiddlercertmaker.exe, генератор сертификатов Bouncy Castle. Поскольку новая версия Android отклоняет сертификаты, действительные более двух лет, дважды щелкните загруженный файл fiddlercertmaker.exe (убедитесь, что Fiddler закрыт), и появится диалоговое окно. появится всплывающее сообщение о том, что импорт сертификата прошел успешно. (Если ваша новая версия может быть установлена, этот шаг можно пропустить).

3. Экспортируйте сертификат Fiddler на свой компьютер и нажмите «Инструменты». -> Options -> HTTPS -> Actions -> Export Root Certificate to Рабочий стол. Как показано ниже:

4. После успешного экспорта вы увидите экспортированный файл сертификата FiddlerRoot.cer на рабочем столе. Как показано ниже:

4. Загрузите и установите openssl.

1. Загрузите версию openssl для Windows, адрес загрузки: http://slproweb.com/products/Win32OpenSSL.html, прокрутите вниз, выберите верхний 64-битный EXE-файл и нажмите для загрузки и установки, как показано на рисунке. рисунок ниже:

2. После завершения установки откройте командную строку cmd в корзине каталога установки openssl и попробуйте, подействует ли команда openssl. Если введена следующая входная информация, установка прошла успешно:

5. Преобразование формата сертификата и переименование.

1. Преобразуйте сертификат Fiddler cer в сертификат pem и введите следующую команду в cmd для преобразования:

Язык кода:javascript
копировать
openssl x509 -inform DER -in C:\Users\DELL\Desktop\FiddlerRoot.cer -out C:\Users\DELL\Desktop\FiddlerRoot.pem

2. Используйте режим md5 для отображения хеш-значения сертификата pem. Введите следующую команду в cmd:

Язык кода:javascript
копировать
openssl x509 -inform PEM -subject_hash_old -in C:\Users\DELL\Desktop\FiddlerRoot.pem

Как видно из приведенного выше, хеш-значение сгенерированного нами сертификата Fiddler составляет 269953fb.

3. Переименуйте сертификат pem, используя значение 269953fb, указанное выше. Следующая команда применима только к window. Используйте mv для Linux. Как показано ниже:

Язык кода:javascript
копировать
ren C:\Users\DELL\Desktop\FiddlerRoot.pem 269953fb.0

Уведомление:renВторой параметр команды,Просто введите новое имя файла,Не входить полный путь,В противном случае будет сообщено об ошибке, как показано ниже:

6. Установите сертификат в системный каталог (/system/etc/security/cacerts).

6.1 Подходит для разработчиков с основами Android

1. Найдите рутированный телефон или любой эмулятор, потому что только рутированный телефон может выполнять различные команды с высоким уровнем привилегий. Я скачал эмулятор под названием Yeshen android 7 system. Как показано ниже:

2. Введите adb connect 127.0.0.1:62001 в cmd, чтобы подключить adb к симулятору Yeshen (если вы не уверены в этой части, вы можете прочитать статью брата Хонга о Appium, в которой есть подробное описание того, как подключиться).

(1) После установки симулятора Yeshen при проверке cmd появляется сообщение: версия сервера adb (36) не соответствует этому клиенту (41);

Описание версии andriod adb и версии adb симулятора не совпадают

Найдите причину:

(2) Проверьте версию Android-adb, введите adb --version в cmd, вы увидите, что текущая версия — 1.0.41, называемая версией 41.

(2) Проверьте версию adb в эмуляторе (Yeshen). В каталоге установки \Nox\bin есть файл nox_adb.exe, который на самом деле является adb.exe. (Это легко отличить от adb Android)

(3) Затем введите cmd в адресную строку каталога на предыдущем шаге, чтобы войти в командную строку, затем введите nox_adb и убедитесь, что версия adb в симуляторе — 36.

(4) После выяснения причины измените файл adb.exe в папке инструментов платформы. Просто замените nox_adb.exe в корневом каталоге эмулятора. Затем скопируйте версию adb.exe в android-sdk, затем переименуйте ее в nox_adb.exe, а затем замените nox_adb.exe в папке \Nox\bin. симулятор и снова запустите симулятор для обнаружения. Вы можете видеть, что 127.0.0.1:62001 — это имя устройства симулятора, что указывает на успешное соединение.

3.cmd Войдите в оболочку adb, чтобы войти в терминальную оболочку симулятора Yeshen. Набрав напрямую, я обнаружил ошибку: ошибка: более одного устройства/эмулятора. Как показано ниже:

(1) Причина проверки заключается в том, что брат Хун открыл два симулятора и ввел команду напрямую. Система не знает, в какой симулятор следует войти. Необходимо указать один. Как показано ниже:

(2) Укажите симулятор и войдите в оболочку, и вы сможете успешно войти, как показано на рисунке ниже:

4.cmd Введите cd /system/etc/security, а затем введите ls -l. Вы можете увидеть каталог cacerts. У нас есть только разрешения на чтение и выполнение, но нет разрешений на запись. Как показано ниже:

5. Введите chmod 777 cacerts в cmd, чтобы предоставить нам права на запись в каталог. После выполнения введите ls -l, чтобы убедиться, что мы получили права на запись. Как показано ниже:

Постучите по доске! ! !

Некоторые друзья могут ввести chmod 777 cacerts в других эмуляторах, и им будет предложено указать файловую систему только для чтения. Как показано ниже:

В этом случае вам необходимо перемонтировать систему и сделать ее доступной для чтения и записи. Введите mount -o remount,rw /system, а затем введите chmod 777 cacerts. Вы обнаружите, что настройка может быть успешной. Как показано ниже:

6. Введите exit, чтобы выйти из терминала оболочки, затем введите adb push C:\Users\DELL\Desktop\269953fb.0 /system/etc/security/cacerts (по той же причине вам необходимо указать симулятор) и нажмите предварительно преобразованный сертификат Fiddler в каталог /system/etc/security/cacerts симулятора Yeshen. Как показано ниже:

7. На этом этапе сертификат Fiddler успешно установлен в системный каталог. Нажмем на настройки симулятора. -> Информация о безопасности и местоположении -> Шифрование и учетные данные -> Доверенные учетные данные -> Система, прокрутите вниз, чтобы увидеть наш сертификат Fiddler. Как показано ниже:

Теперь откройте Fiddler для захвата пакетов, и вы обнаружите, что пакеты могут быть успешно перехвачены (не забудьте установить прокси-сервер на Wi-Fi в симуляторе), как показано на рисунке ниже:

6.2 Подходит для новичков без Android Foundation.

1. Найдите рутированный телефон или любой эмулятор, потому что только рутированный телефон может выполнять различные команды с высоким уровнем привилегий. Я скачал эмулятор под названием Yeshen android 7 system.

2. Щелкните значок компьютера на боковой панели симулятора Night God и выберите папку компьютера. Будет выполнен переход в каталог компьютера C:\Users\Administrator\Nox_share и скопирован преобразованный сертификат Fiddler 269953fb.0 в каталог ImageShare. . Вот и все

3. Загрузите МТ Менеджер,Скачать адрес:https://coolapk.com/apk/bin.mt.plus . Перетащив его в симулятор и установив, щелкните, чтобы открыть приложение. Откройте каталог «Изображения» слева, и вы увидите сертификат Fiddler 269953fb.0 в каталоге ImageShare вашего компьютера.

4. Нажмите справа, чтобы войти в каталог system/etc/security/cacerts, затем нажмите и удерживайте файл 269953fb.0 слева и нажмите «Копировать», чтобы скопировать его в каталог, открытый справа.

5. Большинство людей думают, что это здесь.,Но, пожалуйста, взгляните на файл 269953fb.0, который вы только что переместили в каталог system/etc/security/cacerts.,Вы обнаружите, что по сравнению с другими существующими системными сертификатами,269953fb.0 вообще не имеет разрешения на чтение,Вы не сможете найти этот сертификат Fiddler, когда перейдете в раздел Доверенные учетные данные.,Нажмите на верхний левый угол MT Manager.,Найдите и откройте терминал

6. После входа в терминал введите следующую команду, чтобы сделать файл 269953fb.0 доступным для чтения.

7. Посмотрите разрешения файла 269953fb.0 в каталоге system/etc/security/cacerts и обнаружите, что у него есть разрешения на чтение.

8. Вернёмся на рабочий стол симулятора и кликнем по настройкам симулятора. -> Информация о безопасности и местоположении -> Шифрование и учетные данные -> Доверенные учетные данные -> System, прокрутите вниз и наконец увидите наш сертификат Fiddler. Попытаться перехватить пакет не составит труда.

Теперь откройте Fiddler для захвата пакетов, и вы обнаружите, что пакеты могут быть успешно перехвачены (не забудьте установить прокси-сервер на Wi-Fi в симуляторе), как показано на рисунке ниже:

7. Резюме

1. После вышеуказанных настроек в симуляторе Thunderbolt 4 вы обнаружите, что по-прежнему не можете успешно перехватывать пакеты. В этом случае вам необходимо разрешить следующую команду для установки глобального прокси-сервера для Thunderbolt 4.

adb shell settings put global http_proxy <актерское мастерствоip>:<актерское мастерствопорт> Среди них adb можно найти в каталоге установки симулятора.

2. Перед работой убедитесь, что на телефоне или эмуляторе включен root. Если используется эмулятор, должна быть включена опция отладки по USB. Необходимо зайти в «Настройки» — «О планшете» или «О телефоне» — и нажать Android. номер версии 5 раз (Включить параметры разработчика) - Вернуться к параметрам разработчика - Включить переключатель кнопки отладки USB PS: чем сильнее вы нажимаете, тем лучше эффект.

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

4. Есть еще один момент, который необходимо объяснить отдельно. Разрешение на запись в каталог /system/etc/security/cacerts/ требует root-прав мобильного телефона. Другими словами, копирование сертификата в этот каталог требует от вас рутирования вашего собственного устройства. Что касается рутирования мобильных телефонов Android, производители мобильных телефонов обычно имеют свои собственные официальные руководства. Рекомендуется следовать официальным инструкциям по рутированию.

8.Развернуть

У некоторых друзей здесь могут возникнуть вопросы. Системный сертификат размещается в каталоге system/etc/security/cacerts. Если установленный сертификат пользователя хранится в каталоге, то на самом деле он хранится в каталоге data/misc/keystore.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.