windows安装
1 | pip3 install frida frida-tools |
不过frida
安装时总会卡住不动,可以到这里 选择和你的python版本一致的,注意指令集也要和python的一样.然后直接easy_install xxx.egg
Android安装
到这里下载server,主要要和手机的指令集一致的,解压后
1 | adb push server 手机路径 |
应用
python脚本:
1 | import frida |
获取非native方法的输入值和返回值,这里的方法为
String c([]String)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16if (Java.available) {
Java.perform(function () {
var MyApplication = Java.use('com.picacomic.fregata.MyApplication');
console.log(MyApplication);
MyApplication.c.implementation = function (v) {
console.log("param:");
console.log(v);
var ret = this.c(v);
console.log("return value:");
console.log(ret);
return ret;
};
});
} else {
console.log("load java failed");
}获取native方法的输入值和返回值,这里的方法是
String getStringSigFromNative();
1 | if (Java.available) { |
这里的Java_com_picacomic_fregata_MyApplication_getStringSigFromNative
是查so文件得到的方法名,非java源码里面的名称.可以把 .so抠出来,丢到linux里面,然后 nm -D libJniTest.so
,输出大概长这样
其他注意事项
打印String VAL 需要用 Java.vm.getEnv().getStringUtfChars(VAL, null).readCString()
,不然打出来是个地址