首页
社区
课程
招聘
[求助]Cydia Substrate Hook Android libdvm.so 问题
发表于: 2019-1-11 15:48 4375

[求助]Cydia Substrate Hook Android libdvm.so 问题

2019-1-11 15:48
4375
最近了解到dalvik调用方法的过程,其中调用Java普通方法的话必定会经过  libdvm.so 中的 dvmCallMethodV 这个函数
所以我就想要 hoook dvmCallMethodV 这个方法,希望能得到方法调用顺序
hook确实成功了,能在控制台打印一些client init 等类的初始化方法.这些方法会经过  dvmCallMethodV
但是其他的方法打印不出来.
比如说,我点击按钮调用了 doSomething() 这个方法  这个方法的调用并没有经过dvmCallMethodV
是不是因为 JIT 的原因,或者说  doSomething() 这个方法根本就不会经过  dvmCallMethodV()这个方法呢,还是说我Hook的目标有问题?
请问有研究过的大神吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2968
活跃值: (319)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
dvmCallMethod, dvmCallMethodA, dvmCallMethodV,dvmInvokeMethod,均是可以处理的,可以参考看雪这篇文:https://bbs.pediy.com/thread-192803.htm
2019-1-11 16:10
1
雪    币: 582
活跃值: (317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我去测试了一下 ,结果如下(依然不理想)
hook dvmCallMethodA 没有任何方法经过此函数
hook dvmCallMethodV 类的初始化函数经过,比如说 init client 等函数,但是 自定义的方法不会经过,比如说 doSomething()
hook dvmInvokeMethod 在java层通过反射调用的函数会经过,比如 method.invoke(obj,args) 直接调用的方法不会经过,比如 MainActivity.doSomething().

dvmCallMethod 暂时没有测试,主要是不会写hook代码.

这个问题卡了我好多天了,苦恼.
2019-1-11 18:21
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
......
最后于 2020-4-7 20:57 被junkboy编辑 ,原因: ......
2019-1-14 14:46
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
......
最后于 2020-4-7 20:56 被junkboy编辑 ,原因: ......
2019-2-14 13:40
0
雪    币: 582
活跃值: (317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
junkboy 楼主搞定这个问题了吗
暂时没有,只能先放弃了.换个思路.
2019-4-15 23:27
0
雪    币: 1
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Cydia Substrate的版本是最新的吗
2019-4-29 11:12
0
雪    币: 151
活跃值: (66)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
真机?
2019-5-2 21:42
0
游客
登录 | 注册 方可回帖
返回
//