frida hook overloads

同時hook多個重載的函數

function hookOverloads(className, func,check_index=0,check_text="",trace=false) {
  var toHook;
  Java.perform(()=>{
  toHook = Java.use(className)[func];
  var overloads = toHook.overloads;
  var overloadCount = overloads.length;
  for (var i = 0; i < overloadCount; i++) {
      toHook.overloads[i].implementation = function () {
          let check_arg=arguments[check_index]
          if(check_arg.indexOf(check_text)>-1){
            if(trace){
              printStack();
            }
            console.log("========")
            let s = ""
            let l = Array.from(arguments)
            for(let l_i=0;l_i<l.length;l_i++){
                s+="args"+[l_i]+": "+l[l_i]+", ";
            } 
            console.log(className+"."+func+" is Call: Args "+s);
            console.log("========")
          }
          var retval = this[func].apply(this, arguments);
          return retval;
      }
  }            
})
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章