Un script Python (précédemment bash ) qui prépare Android APK (ou AAB, XAPK) pour l'inspection du trafic HTTPS.
Le script permet de contourner SSL PINing sur Android> = 7 via la reconstruction du fichier APK et la confiance du stockage des informations d'identification de l'utilisateur. Après le traitement, le fichier APK de sortie est prêt pour l'inspection du trafic HTTPS.
Si un fichier AAB a fourni le script crée un APK universel et le traite. Si un fichier XAPK a fourni le script le décompressez et traite chaque fichier APK.
Fonctionne sur macOS, Linux et Windows.
[Besoin de tests] Les performances sur les fenêtres seront probablement à quelques reprises (~ 3,5) inférieures à celles de MacOS / Linux ( apktool prend plus de temps pour décoder l'APK).
Il:
java );bundletool (FIF FILE AAB fourni) ou décompressez le fichier XAPK (dans le cas de XAPK);apktool ;network_security_config.xmlapktool ;uber-apk-signer .Éventuellement, le script autorise:
adb ;L'accès racine n'est pas requis.
Installez les outils de la liste ci-dessous:
adb à la variable d'environnement de chemin)Les outils ci-dessous seront téléchargés par le script au cas où il manquera:
Conditions préalables:
pip3 install -r requirements.txt pour installer les modules Python requisLe script peut être lancé comme
python3 /path/to/the/script/apk-rebuild.py
Exécutez python3 apk-rebuild.py -h (ou python3 apk-rebuild.py --help ) pour imprimer le manuel d'utilisation.
usage: apk-rebuild.py [-h] [-v] [-i] [--pause] [-p] [-r] [-o OUTPUT] [--no-src] [--only-main-classes] [--ks KS]
[--ks-pass KS_PASS] [--ks-alias KS_ALIAS] [--ks-alias-pass KS_ALIAS_PASS]
file
The script allows to bypass SSL pinning on Android >= 7 via rebuilding the APK file
and making the user credential storage trusted. After processing the output APK file
is ready for HTTPS traffic inspection.
positional arguments:
file path to .apk, .aab or .xapk file for rebuilding
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-i, --install install the rebuilded .apk file(s) via adb
--pause pause the script execution before the building the output .apk
-p, --preserve preserve the unpacked content of the .apk file(s)
-r, --remove remove the source file (.apk, .aab or .xapk) after the rebuilding
-o OUTPUT, --output OUTPUT
output .apk file name or output directory path (for .xapk source file)
--no-src use --no-src option when decompiling via apktool
--only-main-classes use --only-main-classes option when decompiling via apktool
--ks KS use custom .keystore file for .aab decoding and .apk signing
--ks-pass KS_PASS password of the custom keystore
--ks-alias KS_ALIAS key (alias) in the custom keystore
--ks-alias-pass KS_ALIAS_PASS
password for key (alias) in the custom keystore
Pour reconstruire le fichier APK, utiliser le script avec des arguments. Les exemples sont ci-dessous:
patcher le fichier AAB et ne pas supprimer le contenu du fichier APK déballé
python3 apk-rebuild.py input.aab --preserve
Papet le fichier APK, supprimez le fichier APK source après le correctif et installez le fichier APK correctif sur l'Android-Device
python3 apk-rebuild.py input.apk -r -i
Le chemin d'accès vers le fichier source doit être spécifié comme premier argument.
<debug-overrides> à the network_security_config.xml (et ajouter la propriété android:networkSecurityConfig à l'élément application dans AndroidManifest.xml bien sûr): https://developer.android.com/training/articles/security-config#debug-overrides.Pour les rapports de bogues, les demandes de fonctionnalités ou la discussion d'une idée, ouvrez un problème ici.
Un grand merci à: