Téléphone : Pixel 6
Système : Android 12
HttpCanary Premium
Ceux qui veulent utiliser des fonctions avancées sans restrictions peuvent se référer à cet article pour le combat réel et l'ingénierie inverse du dernier logiciel de capture d'oiseau jaune
Installation du certificat HttpCanary
J'utilisais Android 8 auparavant, et le certificat peut être installé directement via HttpCanary, mais il semble que le système Android 12 ne le puisse pas, et le message d'invite est le suivant :
Le code source Android suivant est analysé. La méthode hasOnlyVpnAndAppsTrustAnchors sous la classe com.android.certinstaller.CredentialHelper est la méthode clé pour restreindre l'installation du certificat. Le code source est le suivant :
Si ce certificat est utilisé pour l'application et le VPN, il renvoie vrai, donc tant que le hook le rend faux pour toujours, il contourne la limitation de l'installation du certificat CA.J'ai écrit un module Xposed appelé BypassCertLimit basé sur ce principe, et le le lien est en fin d' article .
J'ai installé LSPosed sur mon téléphone mobile et ses étapes d'utilisation sont les suivantes :
Activez d'abord le module
, puis cliquez sur le module pour entrer dans la sélection du logiciel cible, cliquez sur les trois points en haut à droite, puis cliquez sur masquer
Annulez la sélection de l'application système
, puis recherchez cert, recherchez le programme d'installation du certificat et sélectionnez-le, puis
forcez l'arrêt de HttpCanary pour que le module prenne effet, puis le certificat CA peut être installé normalement, comme indiqué sur la figure :
Jusqu'à présent, le certificat a été installé dans les informations d'identification de l'utilisateur, mais après Android 7.0, Android ne fait plus confiance au certificat installé par l'utilisateur, de sorte que la demande ne peut pas être décodée lors de la saisie de https. Pour les applications tierces, le certificat doit être ajouté en tant que certificat système
Alors comment l'ajouter ? L'étape principale consiste à déplacer le certificat vers le chemin /system/etc/security/cacerts/ , ce qui nécessite de remonter /system pour qu'il soit lisible et inscriptible, mais Android 12 n'autorise pas le montage de ce répertoire, ni l'utilisateur root , solution voir ci-dessous.
Déplacer les informations d'identification de l'utilisateur vers les informations d'identification du système
Cette solution utilise le module Magisk. La version Magisk que j'ai installée est la v25.1. Cette version ne prend plus en charge l'installation en ligne des modules, j'ai donc utilisé FoxMagiskModuleManager à la place. Lien : https://github.com/Fox2Code/FoxMagiskModuleManager
Le module du certificat mobile est movecert, lien : https://github.com/Magisk-Modules-Repo/movecert, téléchargez le package zip et déplacez-le vers le chemin /sdcard/Download, utilisez FoxMagiskModuleManager pour installer à partir du local, ce module ne peut pas être transmis directement Magisk est installé, je l'ai essayé, redémarré après l'installation, tous les certificats utilisateur seront déplacés vers le certificat système
Paquet d'installation :
BypassCertLimit
FoxMmm-0.5.4.apk
movecert-1.9