frida 安卓hook 笔记3

1.hook 构造函数 $init  例子,String 的构造函数 是不能这样hook的,具体示例在笔记二

 var money=java.use("com.aisj.hook.Money");
money.$init.implementation=function(a,b){
 console.log("money.$init",a)
 return this.$init(a,b);

}

2.对于自定义列表数据的打印 例子

var utils=java.use(com.xjsbh.hook.Utils);
var stringBuilder=java.use("java.lang.StringBuilder");
utils.shufferMap.implementation=function(a){
 var key=a.keySet();
 var it=key.iterator();
 var result=stringBuilder.$new();
 while(it.hasNext()){
   var keystr=it.next();
   var valuestr=a.get(keystr);
   result.append(valuestr);

 }
 console.log("utils.shufferMap:",result.toString());
}

3.hook 方法的所有重载  例子:

var utils=java.use("com.xjshs.hook.Utils");
var overloadsArr=utils.getCalc.overloads;
for(var i=0;i<overloadsArr.length;i++){
  var params=""
   for(var j=0;j<arguments.length;j++){
  params+=arguments[l]+" ";

}
console.log(params);

}
return this.getCalc.apply(this,arguments);

4.如果字段名和方法名一样,都存在的时候 需要加下划线前缀 获取属性 例子

在内存中扫描 Java 堆,枚举 Java 对象(className)实例。比如可以使用 java.lang.String 扫描内存中的字符串。callbacks 提供两个参数:onMatch(instance) 和 onComplete,分别是找到匹配对象和扫描完成调用。

//获取方法中某个名字字段
java.choose("com.sndlsd.hook.BanCard",{
   onMatch:function(obj){
   console.log("java.choose.BankCard"",obj._accountName.value);

},onComplete:function(){
}

});

5.hook 匿名类  一般都是 包名.类名$1   1代表是当前类名第几个匿名类  也可以用以前的那个遍历类的

6.如果碰到混淆函数名,可以尝试用base64 加密 解密 hook

//这个是base64 的hook例子
var money=java.use("com.xiaojianbang.hook.Money");
var base64=java.use("android.util.Base64");
var str=java.use("java.lang.String");
var funcName=str.$new(base64.decode("c2FkYW5rICAgICBkYUAj",0));
console.log(funcName);
money[funcName].implementation=function(){
 var result=money[funcName]();
console.log(result);
 return result;

}

或者用dexlib2 去生成新的dex

7. 枚举所有已经加载的类

console.log(java.enumerateLoadedClassesSync().join("\n"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值