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

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

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

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

2021-4-5 18:21
1
雪    币: 831
活跃值: (2830)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
https://my.oschina.net/caipeng/blog/2246034
2021-4-5 18:30
0
雪    币: 831
活跃值: (2830)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
frida hook JNIENV里面所有调用java方法的函数,在enter的时候输出context看pc寄存器和堆栈的值能反推出来函数在物理内存中的位置。
2021-4-5 18:32
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
8
2021-4-6 17:33
2
雪    币: 29
活跃值: (5857)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

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

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

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