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

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

2021-4-4 01:32
2478
收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 8390
活跃值: 活跃值 (330)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Lunction 活跃值 2021-4-4 02:17
2
0
hook registernative 
雪    币: 1863
活跃值: 活跃值 (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guduzhe 活跃值 2021-4-4 12:11
3
0
修改字节码,把这个java函数重命名成其他的,看看报错信息会有提示。
雪    币: 4468
活跃值: 活跃值 (613)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xianhuimin 活跃值 2021-4-4 21:26
4
0
hook registernative  之后看maps
雪    币: 818
活跃值: 活跃值 (1875)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
爬虫不看学历 活跃值 2021-4-5 18:21
5
1

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

雪    币: 818
活跃值: 活跃值 (1875)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
爬虫不看学历 活跃值 2021-4-5 18:30
6
0
https://my.oschina.net/caipeng/blog/2246034
雪    币: 818
活跃值: 活跃值 (1875)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
爬虫不看学历 活跃值 2021-4-5 18:32
7
0
frida hook JNIENV里面所有调用java方法的函数,在enter的时候输出context看pc寄存器和堆栈的值能反推出来函数在物理内存中的位置。
雪    币: 1205
活跃值: 活跃值 (2922)
能力值: ( LV8,RANK:141 )
在线值:
发帖
回帖
粉丝
Simp1er 活跃值 2021-4-6 17:33
8
2
雪    币: 3
活跃值: 活跃值 (1415)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
不吃早饭 活跃值 2021-4-8 23:12
9
4

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

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

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