frida hook动态dex

第一种:

function hook_dyn_dex() {
  Java.perform(function () {
    //hook 动态加载的dex
    Java.enumerateClassLoaders({
      onMatch: function (loader) {
        try {
          if (loader.findClass("com.xxx")) {
            console.log(loader);
            Java.classFactory.loader = loader; //切换classloader
           }
          } catch (error) {
          }
      }, onComplete: function () {
      }
   });
    var DynamicCheck = Java.use("com.xxx");
    console.log(DynamicCheck);
    DynamicCheck.check.implementation = function () {
      console.log("DynamicCheck.check");
      return true;
    }
  });
}

 

第二种

function hook_dy_dex(){ 
Java.enumerateClassLoaders({
    "onMatch": function(loader) {
        if (loader.toString().indexOf("libxxx.so") > 0 ) {
            Java.classFactory.loader = loader; // 切换classloader
        }
    },
    "onComplete": function() {
    }
});
var dex =  Java.classFactory.use('com.xxx');
dex.a.overload('java.util.HashMap').implementation = function(a){
    let retval = this.a(a);
    console.log("a:" + a.entrySet().toArray());
    console.log("retval" + retval.entrySet().toArray());
    let stack = threadinstance.currentThread().getStackTrace();
    return retval;
} 
}

 

 
posted @ 2022-04-28 11:09  惊世  阅读(728)  评论(0)    收藏  举报