Отказ от ответственности: содержание этой статьи предназначено только для изучения связанных технологий и не может быть использовано для других целей.
Недавно я помогал людям писать сценарии автоматического входа в систему, которые включали перехват пакетов из приложений и мини-программ WeChat в системах Android 7.0+. Вот список эффективных решений для захвата пакетов.
Как мы все знаем, независимо от того, используете ли вы httpCanary, Fiddler или другие инструменты для перехвата пакетов на мобильном телефоне, вам необходимо установить на мобильный телефон корневой сертификат, предоставляемый этими инструментами. Но начиная с версии 7.0 Android больше не доверяет сертификатам, установленным пользователями — установить его все равно можно, но сертификат не будет работать. Типичный симптом — при включении инструмента перехвата пакетов перехваченное приложение отключается от сети. . статус. Так как решить эту проблему? Доступны следующие варианты:
По сути, причина, по которой пакеты не могут быть перехвачены, заключается в том, что система не доверяет сертификату пользователя. Поэтому, пока вы найдете способ поместить сертификат пользователя в каталог системных сертификатов, сертификат можно рассматривать как системный сертификат и его можно рассматривать как системный сертификат. доверял. Но необходимым условием для этой операции является то, что телефон должен быть рутирован, чтобы он мог работать с каталогом сертификатов. А root имеет определенные риски, так что проходите.
Существует множество приложений, которые могут открыть виртуальное пространство на вашем телефоне.
(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 7.0. Поскольку управлять каталогом сертификатов в симуляторе очень просто, версия не является проблемой, и есть ли у вас root. или нет, это не проблема. Давайте поговорим об основных шагах.
1) Загрузите симулятор Yeshen, перетащите apk-файл целевого приложения в симулятор и установите его, убедившись, что его можно нормально открыть.
2) Экспортируйте корневой сертификат Fiddler FiddlerRoot.cer (более поздние версии Android отклоняют сертификаты, действительные более двух лет. На всякий случай вы можете использовать Fiddler CertMaker для создания нового сертификата, импортировать его в Fiddler, а затем экспортировать)
3) Загрузите 64-разрядную версию openssl и настройте каталог bin openssl в качестве переменной системной среды. Затем выполните следующие операции в командной строке.
Преобразование сертификата cer в сертификат pem:
openssl x509 -inform DER -in C:\Users\Chor\Desktop\FiddlerRoot.cer -out C:\Users\Chor\Desktop\FiddlerRoot.pem
Получите хэш сертификата pem:
openssl x509 -inform PEM -subject_hash_old -in C:\Users\Chor\Desktop\FiddlerRoot.pem
Переименуйте сертификат pem, используя значение хеш-функции:
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) Этот сертификат пока недоступен для чтения, поэтому необходимо изменить разрешения на чтение и запись сертификата. Сама файловая система также доступна только для чтения, поэтому сначала необходимо освободить статус системы только для чтения. следующее:
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 Пакет может быть успешно перехвачен.
Публичную учетную запись Вичат для захвата пакетов необходимо использовать только в клиенте Вичат на ПК. Ключевым моментом является то, что вы должны использовать встроенный браузер Вичат, чтобы открыть ссылку на общедоступную учетную запись (другие браузеры не могут открыть общедоступную учетную запись).
Справочная статья:
Подробное руководство по захвату пакетов эмулятора Android 7.0+ Fiddler