L'analyse des applications Android prend de plus en plus de place dans la vie d'un analyste, en raison de l'explosion de cette plateforme, du niveau des utilisateurs finaux et du nombre croissant d'applications disponibles sur le Google Play. Il est donc nécessaire de bien connaître nos outils et leurs limites possibles. Dans la suite de cet article, nous allons brièvement expliquer le format DEX où se situe le code exécutable d'une application, puis décrire les dernières techniques qui permettent de contourner les outils open source d'analyse d'application Android.
1. Le format DEX
Un fichier classes.dex [1] (donc au format DEX pour Dalvik EXecutable, se trouvant dans un fichier APK) est le résultat de la traduction des fichiers .class (qui correspondent à la compilation de fichiers .java) effectué par l'outil « dx » [2] qui est présent dans le SDK de développement Android (cette traduction est totalement transparente du point de vue du développeur).
Le format DEX [1] est assez simple, et se compose d'une en-tête, de différentes listes d'informations (sur les chaînes de caractères, les types, les méthodes, etc.) et d'une section « data » où seront présentes toutes les données utilisées par les listes précédentes (Illustration 1).
Illustration 1 : Description du format DEX
Le « header » contient entre autres, une valeur « magic » (« dex\n035\0 »), un checksum (adler32), une signature (sha1), et les offsets et tailles diverses des listes/sections du format.
Dans la section de...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première