首页
论坛
专栏
课程

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

2019-1-11 15:48 1223

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

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


[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

上一主题 下一主题
最新回复 (5)
deff 2019-1-11 16:10
2
1
dvmCallMethod, dvmCallMethodA, dvmCallMethodV,dvmInvokeMethod,均是可以处理的,可以参考看雪这篇文:https://bbs.pediy.com/thread-192803.htm
AAAyangcheng 2019-1-11 18:21
3
0
我去测试了一下 ,结果如下(依然不理想)
hook dvmCallMethodA 没有任何方法经过此函数
hook dvmCallMethodV 类的初始化函数经过,比如说 init client 等函数,但是 自定义的方法不会经过,比如说 doSomething()
hook dvmInvokeMethod 在java层通过反射调用的函数会经过,比如 method.invoke(obj,args) 直接调用的方法不会经过,比如 MainActivity.doSomething().

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

这个问题卡了我好多天了,苦恼.
junkboy 2019-1-14 14:46
4
0
同…    看源码也没看出来原因
junkboy 2019-2-14 13:40
5
0
楼主搞定这个问题了吗
AAAyangcheng 2019-4-15 23:27
6
0
junkboy 楼主搞定这个问题了吗
暂时没有,只能先放弃了.换个思路.
游客
登录 | 注册 方可回帖
返回