1. function test(){
    2. Java.perform(function () {
    3. /* private static String flag; 静态字段
    4. private int amount; 实例字段
    5. private String currency; */
    6. var Money=Java.use("com.dudu.hook.Money");
    7. //静态字段的操作
    8. console.log(Money.flag.value);
    9. Money.flag.value="静态字段的修改";
    10. console.log(Money.flag.value);
    11. //实例方法的主动调用,首先需要实例一个对象,然后实例化出来的对象再点上方法即可
    12. var Money_1 = Money.$new("构造函数所需要传入的参数", 1888);
    13. console.log("实例字段的打印 - 》 "+Money_1.currency.value);
    14. //实例方法 获取已有对象 就是在内存中搜索已经创建好的对象
    15. Java.choose("com.dudu.hook.Money", {
    16. onMatch: function (obj) {
    17. console.log("Java.choose - 》》》》 "+obj.currency.value)
    18. },
    19. onComplete: function () {
    20. console.log("内存搜索已完成!!!!")
    21. }
    22. })
    23. // Java.choose有一个特别的注意点
    24. //当类里面 字段名和方法名一样 需要加下划线前缀
    25. Java.choose("com.xiaojianbang.hook.BankCard", {
    26. onMatch: function (obj) {
    27. console.log("Java.choose _accountName- 》》》》 "+obj._accountName.value)
    28. },
    29. onComplete: function () {
    30. console.log("_accountName内存搜索已完成!!!!")
    31. }
    32. })
    33. })};
    34. setImmediate(function(){
    35. setTimeout(test(), 5000);
    36. });

    image.png // Java.choose特别的注意点
    //当类里面 字段名和方法名一样 需要加下划线前缀