apkpatcher : Fast analysis and modification to Android applications without root access or emulation. — Benoît Forgette
Date : 05 juin 2025 à 10:00 — 15 min.
Suite à la présentation de pyAXML de l'an dernier, je saisi cette occasion pour présenter la nouvelle version d'apkpatcher qui utilise pyAXML, malgré ses 4 ans d'existance n'avait jamais été présenté directement en conférence. Apkpatcher (https://apkpatcher.ci-yow.com/) est un outil conçu pour simplifier l'analyse et la modification d'applications Android en évitant les limitations liées à l'émulation ou au root des appareils. Ses principaux objectifs sont :
- Permettre l'analyse d'applications Android tout en conservant les fonctionnalités essentielles, notamment celles dépendantes du Bluetooth Low Energy (BLE) ou d'autres modules souvent indisponibles en environnement simulé.
- Offrir un moyen efficace de modifier les comportements d'applications pour répondre à des exigences de respect de la vie privée, d'audit d'application ou contournement de protection à des fin d'amélioration de la protection des applications.
Utilisations et avantages :
Les cas d'utilisation principaux d'apkpatcher incluent :
- Injection de certificat : Ajout d'un certificat de confiance dans l'application pour intercepter les requêtes réseau via un proxy sans échec de validation SSL.
- Injection d'une bibliothèque native comme frida: Permettre l'utilisation d'une DBI pour l'analyse ou permettant de faire du moding d'application via une bibliothèque native
- Activation du mode debug : Permettre le débogage des applications même si le mode debug n'était pas activé à l'origine, facilitant ainsi l'analyse.
- Modification à la volée du code smali : Rendre possible le patching rapide et ciblé du comportement des applications, par exemple pour supprimer des collectes de données personnelles ou contourner des restrictions comme la vérification de la signature de l'application.
Ses avantages sur les autres solutions sont:
- Analyse sans root : Fournir une solution pour tester des applications sur des appareils réels sans avoir besoin d'un exploit pour rooter le téléphone.
- Le API python: Fourni une api permettant de l'utiliser comme une bibliothèque externe dans d'autre projets
- Split Application: Fonctionne sur des applications en plusieurs parties appelées "split".
- Signature: Fonctionne avec les signatures d'application v1, v2, v3 et v4.
- Sans subprocess: Ne nécessite pas de subprocess permettant de mieux gérer les erreurs internes en cas d'échec d'une des étapes.
- Rapidité: Sans avoir fait un benchmark précis de toutes les solutions existantes apkpatcher est une solution rapide en comparaison de la plupart des solutions existantes.
- Fonctionne: La fiabilité est l'une des promesses les plus compliqué à tenir. La plupart des solutions rencontre des problèmes lors de la reconstruction des applications, là où apkpatcher est fiable sur l'ensemble des tests effectués.