image.pngTU
图中InnerStructure这个类是内部类,针对内部类的hook如下:

  1. Java.choose("com.xiaojianbang.hook.Wallet$InnerStructure", {
  2. onMatch: function (obj) {
  3. console.log("Java.choose Wallet$InnerStructure: ", obj.bankCardsList.value);
  4. }, onComplete: function () {
  5. }
  6. });

内部类的访问方法:外部类+$+内部类名 即可

匿名内部类的hook

  1. new Money("欧元", 200) {
  2. public String getInfo() {
  3. return getCurrency() + " " + getAmount() + " 这是匿名内部类";
  4. }
  5. }.getInfo()

本来已经存在了Money,现在针对Money下面的getInfo方法的重写
针对匿名内部类的hook如下:

  1. var Money = Java.use("com.dudu.app.MainActivity$1");
  2. //这个类中第一个匿名内部类就用$1;第二个就用$2;以此类推;
  3. Money.getInfo.implementation=function () {
  4. var ddd= this.getInfo();
  5. console.log(ddd)
  6. return ddd;
  7. }