Java.perform(function () {console.log("start hooking...");function showstack() {var log = Java.use("android.util.Log");var Throwable = Java.use("java.lang.Throwable");console.log(log.getStackTraceString(Throwable.$new()))}var ArrayList = Java.use("java.util.ArrayList");ArrayList.add.overload("java.lang.Object").implementation = function (a) {var v=a.toString()if (v.indexOf("username")!=-1){console.log("toString", v,typeof v)showstack();}return this.add(a);}var ArrayList = Java.use("java.util.ArrayList");ArrayList.add.overload('int', 'java.lang.Object').implementation = function (a, b) {if (b.toString().indexOf("username")!=-1){console.log(a," || ",b)}return this.add(a, b);}})
- ArrayList有两个重载:(‘int’, ‘java.lang.Object’)和(“java.lang.Object”)

注意点,在 javaScript或者jQuery中字符串比较没有equals()方法,要比较两个字符串是否相等可以直接用==或者is()进行判断

我们平时在hook代码里面使用的是Frida-tools给我们提供的工具。当我们使用equals报错时候不妨使用==或者is();
或者吧对象转为字符串,用indexof 是否等于-1进行判断;
这两个空了遇到了再进行补充:
Vector
LinkedList
