Structure des applications Android
Éléments internes des APK
Structure des applications Android est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Le fichier APK
Une application Android est distribuée sous la forme d'un APK (paquet Android). Il s'agit en réalité d'une archive ZIP contenant le code compilé, les ressources et les métadonnées.
Puisqu'il s'agit d'un ZIP, il vous suffit de le décompresser pour en examiner le contenu, ce qui constitue la première étape d'un test d'intrusion mobile.
unzip app.apk -d app_extracted/Contenu de l'APK
Un APK extrait contient :
AndroidManifest.xml: configuration de l'application.classes.dex: bytecode compilé.res/etresources.arsc: ressources.lib/: bibliothèques natives.META-INF/: informations de signature.
Le manifeste
Le fichier AndroidManifest.xml déclare les composants, les autorisations et la configuration de l'application. Dans l'APK, il se présente sous forme de fichier XML binaire que les outils peuvent décoder.
C'est le fichier le plus important pour comprendre la surface d'attaque d'une application.
DEX et l'environnement d'exécution
Le code source Java/Kotlin est compilé en bytecode DEX (Dalvik Executable) dans classes.dex. Les versions modernes d'Android l'exécutent via ART (Android Runtime).
Le DEX peut être reconverti en code lisible, ce qu'exploite l'analyse statique des APK.
Les quatre composants
Les applications Android sont constituées de quatre types de composants :
- Activités : écrans / interface utilisateur.
- Services : tâches en arrière-plan.
- Récepteurs de diffusion : répondent aux événements du système.
- Fournisseurs de contenu : partagent des données entre applications.
Composants exportés
Un composant marqué android:exported="true" peut être appelé par d'autres applications. Si un tel composant effectue des actions sensibles sans vérifications, il constitue une surface d'attaque.
Les testeurs d'intrusion recherchent les activités, services et fournisseurs exportés qui divulguent des données ou effectuent des actions privilégiées.
<activity android:name=".AdminActivity" android:exported="true"/>Autorisations
Les applications demandent des autorisations dans le manifeste (par exemple INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Des autorisations trop larges peuvent indiquer un comportement risqué ou un accès excessif aux données. Des autorisations personnalisées peuvent également être mal configurées et permettre un accès non autorisé.
<uses-permission android:name="android.permission.READ_SMS"/>Bac à sable de l'application
Android isole chaque application dans son propre bac à sable, avec un UID Linux unique. Par défaut, les applications ne peuvent pas lire les données des autres.
Des vulnérabilités apparaissent lorsque des applications affaiblissent cette séparation, par exemple avec des fichiers lisibles par tous ou des fournisseurs exposés.
Stockage des données de l'application
Une application installée stocke ses données privées sous /data/data/<package>/ : bases de données, préférences partagées et fichiers.
Sur un appareil avec accès administrateur ou par l'intermédiaire de sauvegardes, un testeur d'intrusion examine ce répertoire à la recherche de secrets stockés de manière non sécurisée, ce qu'une leçon ultérieure approfondira.
/data/data/com.example.app/Signature
Chaque APK est signé numériquement ; la signature se trouve dans META-INF/. Android la vérifie lors de l'installation et des mises à jour.
Si vous modifiez et recomprimez une application, vous devez la signer à nouveau ; c'est pourquoi les développeurs s'appuient sur la signature pour détecter les altérations.
Bibliothèques natives
La logique critique pour les performances ou obfusquée peut se trouver dans des bibliothèques natives (fichiers .so) sous lib/, compilées à partir de C/C++.
Elles ne se trouvent pas dans le DEX et nécessitent donc une analyse distincte avec des désassembleurs natifs. Les développeurs y dissimulent parfois des secrets, croyant à tort que le code natif est plus difficile à examiner.
lib/arm64-v8a/libnative.soVérification rapide
Rappelez-vous quel attribut du manifeste expose un composant aux autres applications.
Récapitulatif
Vous comprenez maintenant la structure des applications Android :
- Un APK est un ZIP contenant
AndroidManifest.xml,classes.dex, des ressources et les données de signature. - Les applications utilisent quatre composants ; les composants exportés constituent une surface d'attaque.
- Les autorisations et le bac à sable propre à chaque application régissent l'accès ; les données privées se trouvent dans
/data/data/. - Les APK sont signés afin de détecter les altérations.
Ensuite, vous décompilerez un APK lors d'une analyse statique.
Questions Fréquemment Posées
La leçon « Structure des applications Android » est-elle gratuite ?
Oui — le texte complet de « Structure des applications Android » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Structure des applications Android » ?
Éléments internes des APK Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?
Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Structure des applications Android » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?
Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Structure des applications Android
- Analyse statique des APK
- Analyse dynamique avec Frida
- Stockage et communications non sécurisés