Frida HOOK定位点

散列表

打印函数栈

Log.getStackTraceString(new Throwable)

Frida打印Java函数栈

function showStacks() {
	Java.perform(frunction() {
		console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
	});
}

有些系统函数较为常用,不过滤容易奔溃

HOOK ArrayList定位动态数组

let arrayList = Java.use("java.util.ArrayList");
arrayList.add.overload("java.lang.Object").implementation = function(a) {
	console.log("ArrayList: ", a);
	return this.add(a);
}

ArrayList.add.overload("int", "java.lang.Object").implementation = function(a, b) {
	console.log("ArrayList.add", a, b);
	return this.add(a, b);
}

Frida 库

名称 仓库地址 备注
DroidSSLUnpinning SSLUnPinning
r0capture 应用层抓包通杀
RxAppEncryptionProtocol 解密脚本