Frida — Instrumentation dynamique

Dynamic Hooking

Qu'est-ce que Frida ?

Frida injecte du JavaScript dans un processus en cours pour hooker des fonctions, lire/écrire la mémoire, bypasser des vérifications — sans modifier le binaire sur disque. Fonctionne sur Linux, Windows, macOS, Android, iOS.

Scripts utiles

pip install frida frida-tools

// Tracer tous les appels à strcmp (trouver le password)
Interceptor.attach(Module.findExportByName(null, "strcmp"), {
  onEnter: function(args) {
    console.log("[strcmp] " + Memory.readUtf8String(args[0])
               + " vs " + Memory.readUtf8String(args[1]));
  }
});

// Bypasser une vérification
Interceptor.replace(ptr("0x401234"), new NativeCallback(
  function(pwd) {
    return 1;  // toujours retourner "succès"
  }, "int", ["pointer"]
));

// Android : hooker une méthode Java
Java.perform(function() {
  var Activity = Java.use("com.app.MainActivity");
  Activity.checkLicense.implementation = function() {
    return true;  // bypass
  };
});