function test(){
Java.perform(function () {
/* private static String flag; 静态字段
private int amount; 实例字段
private String currency; */
var Money=Java.use("com.dudu.hook.Money");
//静态字段的操作
console.log(Money.flag.value);
Money.flag.value="静态字段的修改";
console.log(Money.flag.value);
//实例方法的主动调用,首先需要实例一个对象,然后实例化出来的对象再点上方法即可
var Money_1 = Money.$new("构造函数所需要传入的参数", 1888);
console.log("实例字段的打印 - 》 "+Money_1.currency.value);
//实例方法 获取已有对象 就是在内存中搜索已经创建好的对象
Java.choose("com.dudu.hook.Money", {
onMatch: function (obj) {
console.log("Java.choose - 》》》》 "+obj.currency.value)
},
onComplete: function () {
console.log("内存搜索已完成!!!!")
}
})
// Java.choose有一个特别的注意点
//当类里面 字段名和方法名一样 需要加下划线前缀
Java.choose("com.xiaojianbang.hook.BankCard", {
onMatch: function (obj) {
console.log("Java.choose _accountName- 》》》》 "+obj._accountName.value)
},
onComplete: function () {
console.log("_accountName内存搜索已完成!!!!")
}
})
})};
setImmediate(function(){
setTimeout(test(), 5000);
});
// Java.choose特别的注意点
//当类里面 字段名和方法名一样 需要加下划线前缀