天天看點

Frida調用靜态函數和非靜态函數

Android源碼

package com.github.androiddemo.Activity;

import android.content.Intent;

public class FridaActivity2 extends BaseFridaActivity {
    private static boolean static_bool_var = false;
    private boolean bool_var = false;

    private static void setStatic_bool_var() {
        static_bool_var = true;
    }

    private void setBool_var() {
        this.bool_var = true;
    }
}      

Frida JS代碼

function call_var() {
  Java.perform(function () {
    var FridaActivity2 = Java.use(
      "com.github.androiddemo.Activity.FridaActivity2");
    console.log("static_bool_var:", FridaActivity2.static_bool_var.value);
    FridaActivity2.setStatic_bool_var();  //調用靜态函數
    console.log("static_bool_var:", FridaActivity2.static_bool_var.value);

    //調用非靜态函數
    Java.choose("com.github.androiddemo.Activity.FridaActivity2", {
      onMatch : function(instance) {
        console.log("bool_var:", instance.bool_var.value);
        instance.setBool_var();
        console.log("bool_var:", instance.bool_var.value);
      }, onComplete : function() {
      }
    })
  });
}      

繼續閱讀