首页
社区
课程
招聘
java方法被native层调用,现在已知被调的java方法位置,有办法定位到是被哪个so调用了吗
发表于: 2021-4-4 01:32 5299

java方法被native层调用,现在已知被调的java方法位置,有办法定位到是被哪个so调用了吗

2021-4-4 01:32
5299
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 9371
活跃值: (1875)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
hook registernative 
2021-4-4 02:17
0
雪    币: 5156
活跃值: (6780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
修改字节码,把这个java函数重命名成其他的,看看报错信息会有提示。
2021-4-4 12:11
0
雪    币: 7433
活跃值: (3698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
hook registernative  之后看maps
2021-4-4 21:26
0
雪    币: 567
活跃值: (2907)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

楼主遇到的可是这种问题?我的方案是看看Unicorn有没有打印invokeObjectMethod记录,没有的话只能自己编译系统输出日志了。

2021-4-5 18:21
1
雪    币: 567
活跃值: (2907)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
70eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0P5g2)9J5k6h3!0K6j5$3S2A6L8X3q4Q4x3X3g2F1k6i4c8Q4x3V1k6U0j5h3W2H3k6h3&6Y4i4K6u0r3j5X3I4G2k6#2)9J5c8U0t1J5y4o6j5H3x3K6b7`.
2021-4-5 18:30
0
雪    币: 567
活跃值: (2907)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
frida hook JNIENV里面所有调用java方法的函数,在enter的时候输出context看pc寄存器和堆栈的值能反推出来函数在物理内存中的位置。
2021-4-5 18:32
0
雪    币: 2282
活跃值: (5877)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
8
2021-4-6 17:33
2
雪    币: 29
活跃值: (6618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

hook一下被调用的java方法,被调用时通过jni函数输出一下native堆栈,即可定位到通过反射调用该java方法的那条call指令所在的地址。这是输出native堆栈的代码

大概就是这种效果,具体是哪一行自己判断吧

最后于 2021-4-8 23:21 被不吃早饭编辑 ,原因:
2021-4-8 23:12
4
游客
登录 | 注册 方可回帖
返回