Le monde mobile est dominé par le système Android. Être capable d'analyser une application Android afin de la comprendre, évaluer sa robustesse ou détecter la présence d'un malware est une compétence de plus en plus recherchée. Cet article synthétise les différentes techniques et outils permettant l'étude d'une application Android.
1. Introduction
Cet article tente de synthétiser l'état de l'art du reverse engineering sous Android. Il ne s'agit pas d'un article introduisant au monde Android, le lecteur intéressé trouvera de nombreuses ressources sur Internet concernant ce sujet. Classiquement, les méthodes d'analyse statiques (désassemblage, décompilation et automatisation de l'analyse), puis les méthodes d'analyse dynamiques (monitoring, instrumentation et debugging) seront présentées.
2. L'analyse statique
2.1. Le désassemblage
2.1.1. Les fichiers DEX (Dalvik Executable)
Une application Android est un fichier ZIP ayant pour extension « .apk ». Le code exécutable de l'application, compilé sous la forme de bytecode Dalvik, est situé dans le fichier classes.dex.
Le bytecode au format Dalvik peut être désassemblé/assemblé via le couple d'outils [BAKSMALI]/[SMALI] (respectivement désassembleur et assembleur en islandais, histoire de briller en société). Par souci 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