修改类成员
修改静态static的类成员(类被初始化时就创建了)
修改非静态的类成员(类被实例化时才创建),当出现同名的name参数和name方法时,要修改参数name时要写成_name!!!
//hook类成员字段
function hooktest8(){
Java.perform(function(){
//对于静态字段static
var myuser=Java.use("com.alex.javahooktarget.MyUser");
myuser.flag.value="hell yeah!";
send(myuser.flag.value);
console.log(JSON.stringify(myuser.flag.value));
//对于非静态字段
Java.choose("com.alex.javahooktarget.MyUser",{
onMatch:function(obj){
obj.trueName.value="hahaha";
},
onComplete:function(){
}
});
})
}
枚举所有类和类的方法
异步的方法
function hookTest7(){
Java.perform(function(){
Java.enumerateLoadedClasses({
onMatch:function(name,handler){
if(name.indexOf("com.alexw.app")!=-1){
console.log(name);
var clazz=Java.use(name);
console.log(clazz);
var methods=clazz.class.getDeclaredMethods();
for(var i=0;i<methods.length;i++){
console.log(methods[i]);
}
}
},
onComplete:function(){
}
}
});
});
}