Injecter du javascript dans une application native Windows, OSX, Linux, iOS ou Android
Si vous êtes des lecteurs attentifs, vous connaissez forcément Greasemonkey dont j’ai parlé à maintes reprises. Pour ceux qui dormaient, Greasemonkey est une extension pour les navigateurs, qui permet d’injecter du JavaScript sur les sites web de votre choix. Cela permet de modifier, voire d’implémenter de nouvelles fonctionnalités de votre cru sur les sites de votre choix.
Bref c’est très cool.
Et si je vous parle de ça aujourd’hui, c’est pour vous présenter Frida, un outil qui permet lui aussi d’injecter du JavaScript, mais cette fois-ci dans des applications natives Windows, OSX, Linux, iOS et Android.
Grâce à Frida, vous allez pouvoir vous brancher à n’importe quelle fonction, tracer des API ou du code fermé. Si par exemple, une application iOS vous plait que vous voulez interagir avec elle mais qu’elle utilise uniquement des protocoles chiffrés, grâce à Frida, vous allez pouvoir tracer les API afin d’en comprendre le fonctionnement. Une application plante ? Vous voulez comprendre ce qui déconne pour faire du débug ? Pas la peine d’envoyer une version de debug modifiée à votre utilisateur. Vous lui communiquez juste un petit script embarquant Frida, capable de sortir un diagnostic de l’app et le tour est joué. Cela permet aussi de customiser quelques trucs dans vos applications sans avoir à polluer un code en production.
Frida est écrit en C et injecte dans les processus visés, le moteur JavaScript V8 de Google. C’est dans ce moteur qu’est ensuite exécuté le JavaScript que vous développez. Celui-ci aura un accès total à la mémoire et aux fonctions de l’application cible. Bref, ça vous donne de quoi bidouiller, surtout que Frida possède ses propres API sur lesquelles vous pouvez développer ou brancher vos propres outils.
Si Frida vous intéresse, le site est ici et toute la documentation se trouve là.