首页
社区
课程
招聘
未解决 [求助]求助frida的一些问题 50.00雪花
发表于: 2021-11-28 23:33 5943

未解决 [求助]求助frida的一些问题 50.00雪花

2021-11-28 23:33
5943

frida,hook内部类如何去引用外部类的变量
this.this$0拿不到
frida中进行rpc调用,有个函数的参数接收的是object类型,传入时的数据是字符串数组string[],一直报类型错误,使用Java.cast转换也报错误,
代码片段:
let ipt = Java.array('java.lang.String', ["cookie", "tt=12345"]);
let JavaObject = Java.use("java.lang.Object");
let val = Java.cast(ipt, JavaObject);
相似问题描述:https://bbs.pediy.com/thread-261052.htm
求大佬解答


[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

最后于 2021-11-28 23:35 被mb_spsnqspg编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 3710
活跃值: (2669)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
2
好像以前碰到过
2021-11-30 12:07
0
雪    币: 2767
活跃值: (2085)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
样本发一下我研究看看
2021-11-30 13:24
0
雪    币: 3269
活跃值: (3114)
能力值: ( 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编辑 ,原因:
2021-11-30 14:22
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
xhyeax 复现:创建Java函数,参数声明为java.lang.Object类型。Frida构造String数组后尝试调用。直接传入String数组类型,提示参数类型不匹配,因为Frida没有做这层转换。使用楼 ...
不行,会报错:"TypeError: cannot read property '$h' of undefined"
2021-11-30 17:13
0
雪    币: 3269
活跃值: (3114)
能力值: ( 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编辑 ,原因:
2021-11-30 17:26
0
雪    币: 939
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
xhyeax 复现:创建Java函数,参数声明为java.lang.Object类型。Frida构造String数组后尝试调用。直接传入String数组类型,提示参数类型不匹配,因为Frida没有做这层转换。使用楼 ...
类似的构造对象数组的问题亲测可用,[]Object
2024-5-30 15:28
0
游客
登录 | 注册 方可回帖
返回
//