Si le système d'exploitation Android (AOSP pour les intimes), tel que proposé par Google, se veut libre et Open Source, ce n'est pas forcément le cas pour l'écosystème applicatif le constituant. Pour autant, voyons comment il est possible de jouer les curieux ;-)
Si les applications Android sont écrites en Java, elles sont néanmoins compilées sous la forme d'un bytecode Dalvik, exécuté par une machine virtuelle dédiée. Les capacités d'introspection du langage Java rendent cependant aisée sa rétro-ingénierie, permettant ainsi de remonter à tout ou partie des sources Java originelles à partir d'une application Android du PlayStore. Au travers de cet article, nous reviendrons donc sur la façon dont les applications sont compilées, et verrons ensuite par le biais d'un exemple pratique (le jeu libre Frozen Bubble) comment il est possible de le décompiler, pour en modifier le contenu et ainsi démarrer le jeu à un niveau avancé. Vous apprendrez ainsi comment retrouver le code Java à partir d'une archive APK et à modifier directement le code assembleur Smali généré.
Avant toute chose, sachez que le principe de rétro-ingénierie constitue une pratique interdite en France. Cet article n'a donc qu'un but pédagogique....
- 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