Android : le DRM de Google contourné

Publié le 24 août 2010 par Actweo.com @Actweo

Le mois dernier, Google avait dévoilé une nouvelle technologie anti-piratage mise à la disposition des développeurs d’applications Android. Le système Android Market Licensing interroge les bases de données de Google lors du lancement de l’application payante, et vérifie que le propriétaire du téléphone a bien payé la licence. Si ça n’est pas le cas, le développeur peut interdire le lancement de l’application, afficher un message d’avertissement, exécuter le programme dans un mode limité, ou faire comme si de rien n’était. C’est lui qui choisit.

Or c’est bien cette liberté de choix offerte à l’utilisateur qui est à l’origine d’une faille décrite par Android Police. L’auteur – lui même développeur sur Android – détaille en effet comment il est possible de patcher une application pour flouer le mécanisme de contrôle. Il rappelle ainsi que la plupart des applications sont écrites en Java et compilées sous forme de bytecode, interprété par une machine virtuelle. Un même bytecode peut-être exécuté sur différentes plate-formes et par différentes machines virtuelles, ce qui oblige à garder une certaine lisibilité du code, même s’il n’est pas aussi clair que le code source. Mais de fait, il peut être facilement décompilé, par exemple avec smali, puis modifié.

Cliquer ici pour voir la vidéo.

L’idée est donc de modifier le bytecode à l’endroit où l’application communique avec la librairie de contrôle de la licence, pour changer le comportement choisi par le développeur en cas de piratage. Et bien sûr, demander à faire comme si de rien n’était.

Il suffit alors de recompiler le logiciel, de le signer avec n’importe clé, et le tour est joué. L’auteur ne s’en félicite pas, bien au contraire. « La situation actuelle avec le piratage dans notre communauté est hors de contrôle« , regrette-t-il, « et ça ne va faire qu’empirer à mesure que la plate-forme grossit. Des sites comme AndroidPlayground qui a été fermé récemment profitent du dur labeur de nos développeurs, et entravent les développements futurs« . Il estime que l’Android Market Licensing reste à ce jour la meilleure solution, mais il espère de meilleures outils de protection à l’avenir.

Et le chat continuera de courir après la souris.