能力值:
( LV7,RANK:105 )
|
-
-
2 楼
好像以前碰到过
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
样本发一下我研究看看
|
能力值:
( LV3,RANK:25 )
|
-
-
4 楼
复现:创建Java函数,参数声明为java.lang.Object类型。Frida构造String数组后尝试调用。
直接传入String数组类型,提示参数类型不匹配,因为Frida没有做这层转换。 使用楼主方法转换,提示期望得到一个指针,因为Java.array的返回值没有$h属性。
查看types.js源码,可以发现创建数组时设置了$w属性。
解决方案:使用$w属性即可。 代码如下: let ipt = Java.array('java.lang.String', ["cookie", "tt=12345"]); let JavaObject = Java.use("java.lang.Object"); let val = Java.cast(ipt.$w, JavaObject);
最后于 2021-11-30 14:57
被xhyeax编辑
,原因:
|
能力值:
( LV1,RANK:0 )
|
-
-
5 楼
xhyeax
复现:创建Java函数,参数声明为java.lang.Object类型。Frida构造String数组后尝试调用。直接传入String数组类型,提示参数类型不匹配,因为Frida没有做这层转换。使用楼 ...
不行,会报错:"TypeError: cannot read property '$h' of undefined"
|
能力值:
( LV3,RANK:25 )
|
-
-
6 楼
mb_spsnqspg
不行,会报错:"TypeError: cannot read property '$h' of undefined" 可能是环境原因,测试环境Frida 15.1.11
你用的版本没有$w字段,可以在Frida CLI中创建一个Java.array
var ipt = Java.array('java.lang.String', ["cookie", "tt=12345"]);
然后输入ipt.$查看有哪些字段。
如果有这个字段的话,可以直接拿着它去主动调用,不需要使用Java.cast
比如有个test方法
let ipt = Java.array('java.lang.String', ["cookie", "tt=12345"]); Java.use("com.example.MainActivity").test(ipt.$w);
最后于 2021-11-30 17:49
被xhyeax编辑
,原因:
|
能力值:
( LV1,RANK:0 )
|
-
-
7 楼
xhyeax
复现:创建Java函数,参数声明为java.lang.Object类型。Frida构造String数组后尝试调用。直接传入String数组类型,提示参数类型不匹配,因为Frida没有做这层转换。使用楼 ...
类似的构造对象数组的问题亲测可用,[]Object
|
|
|