🪝Outil Frida
Description
Frida est une boîte à outils d’instrumentation de code dynamique. Il vous permet d'injecter des extraits de JavaScript ou de votre propre bibliothèque dans des applications natives sur Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD et QNX. Frida vous fournit également des outils simples construits sur l'API Frida. Ceux-ci peuvent être utilisés tels quels, adaptés à vos besoins ou servir d'exemples d'utilisation de l'API.
Installation
$ pip install frida-tools
ressource: https://github.com/frida/frida
Installation sur Android
Télécharger le binaire
frida-server
approprié à l'appareil utilisé via la page de releases suivante:
Importer le binaire sur l'appareil via la commande
$ adb push frida-server /data/local/tmp/
Donner les permissions au binaire via la commande
$ adb shell "chmod 755 /data/local/tmp/frida-server"
Puis lancer le binaire en arrière-plan via la commande
$ adb shell "/data/local/tmp/frida-server &"
Note: Pour fonctionner, frida-server a besoin de permissions élevées sur l'appareil. Il est donc nécessaire de rooter celui-ci pour l'utiliser.
Hooking (bases)
Dans un premier temps lorsqu'on utilise l'API Javascript Frida, on doit se connecter à JVM (Java Virtual Machine).
Pour cela on utilise Java.perform
:
Ensuite, il nous faut importer la classe que l'on souhaite tester avec Java.use
:
Enfin, il reste à hook la méthode à tester comme ceci:
Où [Classe]
est la variable définie prédèdemment, [Method]
est la fonction du code hookée et [args]
représente le ou les arguments utilisés par la fonction.
Fonctions Android
Le hooking permet ainsi d'intéragir avec des fonction android dynamiquement.
Exemple:
Permet d'intercepter la méthode getDeviceId
et log l'ID de l'appareil via la commande console.log()
API / Fonctions natives
Frida permet également de hook des fonctions natives avec Interceptor.attach()
.
Exemple avec malloc:
Ce script permet de s'attacher à la fonction native malloc afin de log la taille de chaque allocation mémoire.
Frida-trace
Frida-trace est un utilitaire de Frida permettant de tracer les appels en temps réel.
Exemple d'utilisation:
$ frida-trace -U -f com.target.xyz -i "open*"
ressource: https://frida.re/docs/frida-trace/
Dernière mise à jour