Android / Intermédiaire / 18 min de lecture
Analyse Android avec REA : où cet APK envoie-t-il ses requêtes ?
Analysez un APK Android avec REA. Trouvez le code de construction des requêtes, suivez ses appelants et distinguez les adresses candidates du trafic réseau observé.
Sur cette page
Une chaîne annotée reliant une fonction au constructeur de sa requête, avec des hôtes, chemins et paramètres candidats.
Il vous faudraUn APK que vous pouvez inspecter, un JDK 17+ complet et un JAR jadx-headless-mcp 0.7.1 déjà disponible. Vérifiez la compatibilité du moteur avec votre système.
01. Choisissez un écran ou une action
« Lister toutes les API » est généralement trop vaste. Partez d’une opération visible, comme le chargement d’un catalogue public. Notez la version de l’APK et le nom de l’écran. Vous cherchez le code qui construit cette requête, pas chaque chaîne ressemblant à une URL dans le paquet.
Il s’agit d’une inspection statique. L’APK n’est pas lancé. Les chaînes embarquées peuvent contenir des hôtes abandonnés, des environnements de test ou des chemins combinés avec une configuration à l’exécution.
Inspecte /absolute/path/app.apk avec REA. Localise le code qui charge le catalogue public. Suis le chemin depuis une classe d’écran ou de dépôt probable jusqu’à sa méthode réseau. Indique les hôtes, chemins, méthodes HTTP et paramètres candidats, avec les classes et méthodes qui les étayent. Distingue les déclarations statiques du trafic confirmé à l’exécution.02. Connectez le moteur Android
Utilisez un JDK complet, avec son module compilateur. Indiquez à REA le JAR du moteur déjà installé. Si REA passe par votre agent, configurez le même environnement pour ce serveur et redémarrez-le ; définir une variable dans un autre terminal ne modifie pas un processus existant.
export REA_JADX_MCP_JAR="/absolute/path/jadx-headless-mcp-0.7.1-all.jar"
npx -y rea-agents@6.4.0 inspect-android-package "/absolute/path/app.apk" --json
npx -y rea-agents@6.4.0 search-android-classes "/absolute/path/app.apk" Catalog --json03. Inspectez la classe, puis sélectionnez la méthode
La recherche de classes porte sur leurs noms, pas sur n’importe quelle chaîne dans le corps des méthodes. Essayez des noms de fonctions et des noms réseau courants comme Api, Service ou Repository. Les paquets obfusqués peuvent nécessiter un autre point d’entrée, par exemple une activité du manifeste dont on suit les dépendances.
Remplacez la classe ci-dessous par un nom exact renvoyé par la recherche. Inspectez ses membres avant de choisir une méthode. Si plusieurs surcharges partagent le même nom, utilisez l’indice de surcharge indiqué dans l’inventaire de la classe.
npx -y rea-agents@6.4.0 inspect-android-class "/absolute/path/app.apk" com.example.CatalogRepository --json
npx -y rea-agents@6.4.0 inspect-android-method "/absolute/path/app.apk" com.example.CatalogRepository loadCatalog --json04. Suivez séparément la construction et les appelants
Lisez le code où la requête est construite et celui qui appelle la méthode. Une URL de base constante ne suffit pas : un constructeur peut la remplacer, un intercepteur ajouter des paramètres et une bibliothèque native masquer une partie du processus. Notez chaque frontière.
Les références entrantes montrent les relations statiques connues du moteur d’analyse. La réflexion et le chargement dynamique peuvent leur échapper. Si le résultat fournit du smali plutôt que du Java, traitez-le comme une autre représentation de la même méthode et inspectez-le explicitement.
npx -y rea-agents@6.4.0 trace-android-references "/absolute/path/app.apk" com.example.CatalogRepository --method-name loadCatalog --json- Quel appelant relie cette méthode à la fonction choisie ?
- L’URL de base est-elle un littéral, une ressource, une configuration ou un résultat d’exécution ?
- Quels champs sont réellement ajoutés à la requête ?
- Où le suivi statique s’arrête-t-il ?
05. Transformez les résultats en petite spécification
Rédigez un tableau contenant la méthode candidate, la construction de l’URL, les noms des paramètres et les références des méthodes qui les étayent. Laissez inconnues les valeurs disponibles uniquement à l’exécution. Utilisez un serveur simulé local pour prototyper votre propre client à partir de cette spécification.
Une liste statique d’adresses ne constitue pas une capture de requêtes réussie. Pour l’affirmer, il faut enregistrer séparément l’exécution de la version correspondante de l’application dans un environnement de test adapté. Ce tutoriel fournit la démarche d’inspection ; il ne prétend ni avoir testé un APK ni avoir capturé une réponse API.
Commandes vérifiées avec REA 6.4.0. Les résultats propres à une cible dépendent du fichier et du moteur utilisés. Lire la source du projet et le périmètre →
Vous découvrez l’outil ? Qu’est-ce que REA ? · Comment nous vérifions nos guides