能力值:
( LV9,RANK:140 )
|
-
-
26 楼
HookArtMethod在art.cpp里面,预想中是用来支持art的,现在是不可用的
|
能力值:
( LV9,RANK:140 )
|
-
-
27 楼
我研究art也有一两个月了,源码也看得差不多了,真没发现能HOOK一个非native java method!
这也是这篇文章的起因,dalvik虽然出来没几年,但也显得老态龙钟了.先不说64位,现在移动处理能力暴涨,但是这个增长趋势也是有个限度的,当不能从硬件上提升体验,那时候就是转向系统的优化,而dalvik就是个瓶颈,纯粹的dalvik是会被抛弃的.但完全的抛弃应该是不会有的,dalvik就是安卓的核心所在,被彻底抛弃那就安卓就不叫安卓了,除非谷歌真的够魄力整个给重做了,况且技术层面上说,art只是dalvik的另外一种实现方式.至于64位在手持设备的意义不是很大,手持设备终将不会成为大数据处理的载体,64位的地址扩展带来的内存容量提升可能比较有意思一点.
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
看了一遍,好多地方还是没明白,收藏学习了!
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
不错的教程 感谢LZ的分享
|
能力值:
( LV11,RANK:190 )
|
-
-
30 楼
标记下,刘明
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
拜谢!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
请教楼主,hook到java方法后,如何在hook中调用原来方法????
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
lz你好,我想请教一个问题:
你代码中用到的class Method等类和dvXXXX系列函数,是dalivk虚拟机中提供的吧?这些类、方法如何学习?有没有什么资料系统的讲这些接口的(难道这是一套SDK?)?
希望lz有空的时候回复我的问题。拜谢!
|
能力值:
( LV7,RANK:100 )
|
-
-
34 楼
非常感谢你的分享
|
能力值:
( LV9,RANK:140 )
|
-
-
35 楼
这个我也没有找到一个很完美的方法,但是还是有一个方法。就是用“递归”的方式进入原来的方法:先Hook java method,当执行序列到我们注入的代码的时候,先做完你的坏事,然后unhook这个方法,再“递归”调用自身,返回的时候再Hook它。
|
能力值:
( LV9,RANK:140 )
|
-
-
36 楼
你去下我提供的测试代码就知道我是怎么引用的了,是直接从虚拟机源码里引用的.
至于描述这些方法接口的资料,系统的是没有的,都是网上一些零散的描述.这毕竟只是用于实现系统内部功能的,所以没有什么公开资料,真想学习的话,就去读它的源码和注释,对于开源项目来说,源码和注释是最好的学习资料了.
别看着虚拟机源码有几十兆,它的核心部分没那么庞大.多留意一下,利用一下辅助工具,还是很容易看到你想看到的东西的
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
感谢,你的代码我已经下载了,我以前都是做的本地层拦截,这块一直想搞没开始 ,感谢回复,我有问题了再请教你
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
谢谢分享,很喜欢,收藏了!
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
感谢分享 不错不错 收藏了
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
又来麻烦lz,先拜谢。
我准备学习dalvik虚拟机源码,准备做android java 方法拦截。我想请问一下,我应该看虚拟机源码哪一部分,如何学习,有没有啥比较好的教程之类的,毕竟源码还是很大的-_-!。请lz多多指点,拜谢啊拜谢。
祝工作顺利。
|
能力值:
( LV9,RANK:140 )
|
-
-
41 楼
大体的方法是:找到切入点,然后顺藤摸瓜!
既然是做方法拦截的话,那就是看dalvik字节码执行的部分,这部分的代码都在/dalvik/vm下,具体的你看下目录结构就清楚了。基本每个文件名都表达了其意义。
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
不错,学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
感谢!拜谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
看完标题 就猜到 肯定是用反射 在c/c++中调用java,一般软件开发中也会用到这种方法,主要是当处理数据的方法用C/C++完成,需要在java代码中显示进度条之类的操作 却没有数据,于是在C/c++中去反射获取方法,再调用自身的数据去执行相应操作。
|
能力值:
( LV9,RANK:140 )
|
-
-
45 楼
这篇文章可不是用来介绍jni和反射的,就那点事也不好意思发这里。这篇文章的核心是HOOK,反射只是用来找到相应方法而已,还有一个要点是在没有java主动支持的情况下从native进入java世界,寻找虚拟机的实例也是个难点。
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
谢谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
表示虚拟机里测试api8,api16均无法通过,process直接stopped的!还有人遇到同样的情况阿??
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
这个要mark一下啊。感谢楼主
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
....无法OPEN DLL~
|
|
|