Решение для захвата системных пакетов Android 7.0+
Решение для захвата системных пакетов Android 7.0+

Отказ от ответственности: содержание этой статьи предназначено только для изучения связанных технологий и не может быть использовано для других целей.

Недавно я помогал людям писать сценарии автоматического входа в систему, которые включали перехват пакетов из приложений и мини-программ WeChat в системах Android 7.0+. Вот список эффективных решений для захвата пакетов.

Как мы все знаем, независимо от того, используете ли вы httpCanary, Fiddler или другие инструменты для перехвата пакетов на мобильном телефоне, вам необходимо установить на мобильный телефон корневой сертификат, предоставляемый этими инструментами. Но начиная с версии 7.0 Android больше не доверяет сертификатам, установленным пользователями — установить его все равно можно, но сертификат не будет работать. Типичный симптом — при включении инструмента перехвата пакетов перехваченное приложение отключается от сети. . статус. Так как решить эту проблему? Доступны следующие варианты:

root

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

Виртуальное пространство + httpCanary

Существует множество приложений, которые могут открыть виртуальное пространство на вашем телефоне.

(1) VMOS pro: вы можете открыть виртуальную машину на своем мобильном телефоне, и эту виртуальную машину легко получить root. После рутирования импортируйте целевое приложение, установите сертификат и, наконец, используйте httpCanary для захвата пакетов на реальной машине. . Но после загрузки VMOS pro я сдался, потому что прошивку невозможно было загрузить и даже к приложениям не было доступа.

(2) Параллельное пространство: его можно загрузить из Google Store. Он не поддерживает импорт 64-битных приложений, поэтому вам необходимо загрузить патч для поддержки 64-битных версий. Версия приложения параллельного пространства должна адаптироваться к версии httpCanary, иначе оно по-прежнему не сможет перехватывать пакеты. Хотя httpCanary имеет встроенный вход для загрузки параллельного пространства для соответствующей версии, при нажатии на загрузку ответ не поступает. В конце концов, после того, как я наконец нашел совместимую версию httpCanary и параллельного пространства и успешно вошел в целевое приложение, я все равно столкнулся с проблемой перехвата пакетов и отключения сети, поэтому мне ничего не оставалось, как сдаться.

(3) VirtualXpose + justTrustMe: это по-прежнему аналогичное приложение. Функция модуля justTrustMe заключается в запрете проверки сертификатов для приложений, работающих в виртуальном пространстве, поэтому, естественно, проблем с доверием сертификатам не возникает. Но после того, как я импортировал целевое приложение в VirtualXpose, я обнаружил, что приложение вылетало, как только я его открывал, поэтому этот метод не сработал, и мне пришлось сдаться.

Декомпилировать

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

Эмулятор Android + Скрипач

Да, эмулятор можно использовать не только для игр, но и для перехвата пакетов, и это решение работает на удивление хорошо.

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

1) Загрузите симулятор Yeshen, перетащите apk-файл целевого приложения в симулятор и установите его, убедившись, что его можно нормально открыть.

2) Экспортируйте корневой сертификат Fiddler FiddlerRoot.cer (более поздние версии Android отклоняют сертификаты, действительные более двух лет. На всякий случай вы можете использовать Fiddler CertMaker для создания нового сертификата, импортировать его в Fiddler, а затем экспортировать)

3) Загрузите 64-разрядную версию openssl и настройте каталог bin openssl в качестве переменной системной среды. Затем выполните следующие операции в командной строке.

Преобразование сертификата cer в сертификат pem:

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

Получите хэш сертификата pem:

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

Переименуйте сертификат pem, используя значение хеш-функции:

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

4) Разместите сертификат abcdefgh.0 Перейти в каталог C:\Users\Chor\Nox_share\ImageShare Далее сертификат находится в эмуляторе.

5) Используйте файловый менеджер, входящий в комплект симулятора, чтобы открыть Pictures каталог, поместите сертификат abcdefgh.0 Перейти в каталог системных сертификатов system/etc/security/cacerts середина. Таким образом, этот сертификат становится доверенным системным сертификатом.

6) Этот сертификат пока недоступен для чтения, поэтому необходимо изменить разрешения на чтение и запись сертификата. Сама файловая система также доступна только для чтения, поэтому сначала необходимо освободить статус системы только для чтения. следующее:

Язык кода:javascript
копировать
su
mount -o remount,rw /system
cd /system/etc/security/cacerts
chmod 777 abcdefgh.0

Таким образом, сертификат имеет самые высокие разрешения на чтение и запись, и этот сертификат также можно увидеть в настройках системы.

7) Подключение к компьютеру wifi Или мобильную точку доступа через ipconfig получать WLAN из IPv4 адрес одновременно Fiddler открыть 8888 порт. В это время действуйте как мобильный телефон в симуляторе, и компьютер находится в одной сети, войдите в интерфейс сетевых настроек симулятора, вручную установите сетевой прокси, адрес прокси-сервера Воля будет установлен на предыдущий из IPv4 Адрес, порт установлен на 8888. Таким образом, пакеты данных, отправленные и полученные в симуляторе, будут проходить через Fiddler Это промежуточный прокси-сервер.

8) Все приготовления завершены. Далее откройте целевое приложение в симуляторе, а затем перейдите в Fiddler и успешно перехватите пакеты~.

Как перехватывать пакеты небольшой программой?

представленный ранееиз Все для Android app Как перехватывать пакеты, как перехватывать пакеты для небольших программ? Здесь представлены три метода:

(1) Эмулятор Android + Fiddler:

Основные шаги аналогичны описанным ранее. Следует отметить, что из,Нашему пользовательскому сертификату доверяет только система.,не был Вичат信任 —— Вичат 7.0+ Версия не доверяет пользовательским сертификатам, имеет свой список сертификатов. Если мы хотим перехватить пакеты, мы должны загрузить 7.0 Следующий из Вичат и импортируйте в симулятор, или используйте в симуляторе 7.0 Ниже приведена система Android, поэтому вы можете игнорировать версию Вичата.

(2)VirturalXpose + justTrustMe + инструмент перехвата пакетов:

Основные шаги аналогичны описанным ранее. Хотя некоторые приложения импортируют VirturalXposed Не могу открыть позже,Но Вичат не будет,Этот метод действительно проверен и эффективен для апплета Вичат.

(3) Компьютерный терминал Вичат-апплет + Fiddler:

Самый простой метод,Однако недавно структура мини-программы была обновлена.,Поэтому перед использованием этого метода требуется дополнительная работа. Откройте любую мини-программу,Найдите апплет Вичат в процессе в диспетчере задач.,Щелкните правой кнопкой мыши, чтобы открыть каталог,затем перейти к WMPFRuntime папка. Закрыть Вичат, Воля весь WMPFRuntime Удали папку, затем заново открой Вичат и введи целевой апплет На этот раз я нашел. Fiddler Пакет может быть успешно перехвачен.

Как перехватывать пакеты из официального аккаунта WeChat?

Публичную учетную запись Вичат для захвата пакетов необходимо использовать только в клиенте Вичат на ПК. Ключевым моментом является то, что вы должны использовать встроенный браузер Вичат, чтобы открыть ссылку на общедоступную учетную запись (другие браузеры не могут открыть общедоступную учетную запись).

Справочная статья:

Подробное руководство по захвату пакетов эмулятора Android 7.0+ Fiddler

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода