首页
社区
课程
招聘
[原创]xposed art-runtime移植细节
发表于: 2018-5-12 11:33 9843

[原创]xposed art-runtime移植细节

2018-5-12 11:33
9843

前段时间想打造一个直接集成到本地mtk的xposed环境。

前段时间,对xposed感兴趣,想移植一下xposed到本地代码。移植成功后,做了以下对照。该移植在于art虚拟机的移植。下面就分别介绍移植点

红色的是新增加的代码。可以用compare软件,来进行移植工作,比较方便

1、art\runtime\base\logging.h

 

 

增加log属性

2、 art\runtime\base\logging.c

 

实现一个xposed的log

3、art\runtime\entrypoints\entrypoint_utils.h

art\runtime\entrypoints\entrypoint_utils.cc

 

操作hook后的方法

 

 

上面的方法,详细的解释了,如果是xposed hook的方法被检测到时,如何去调用的过程。

4、art\runtime\art_method.h

art\runtime\art_method.cc

art\runtime\art_method-in.h

 

增加一个用于hook的结构体

这个结构体是xposed能进行hook的一个关键

判断方法时,增加xposed方法的判断

 

 

Quick入口设置时,还有一定的要求

 

增加一些与xposed相关的数据结构调用方法及字段

下面StackReplaceMethod的方法,用于更换

 

 

这一段代码在ArtMethod.cc中,是进行方法替换的核心逻辑。

Xposed就是改造了art的artmethod这一类,该类其实就是art虚拟机在运行时的方法对象。

最后生成hook_info 通过SetEntryPointFromJni 来设置到对方法区。需要用的时候再通过soa.DecodeMethod(method)->GetXposedHookInfo();来获取,进而调用。

5、art\runtime\class_linker.cc

因为method->IsProxyMethod(true)变了,导致的改变。


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

上传的附件:
收藏
免费 2
支持
分享
最新回复 (16)
雪    币: 440
活跃值: (1163)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
先马克,有空再学习
2018-5-12 12:35
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3

最后于 2018-5-12 22:18 被Rprop编辑 ,原因:
2018-5-12 13:08
0
雪    币: 1392
活跃值: (5177)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
MARKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
2018-5-12 13:08
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2018-5-12 23:36
0
雪    币: 2714
活跃值: (1611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢分享。学习
2018-5-14 10:04
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢分享,学习了
2018-5-14 20:53
0
雪    币: 3549
活跃值: (941)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
谢谢分享
2018-5-22 10:13
0
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
9
图片看不到了
2018-5-23 10:18
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
10
建议将PDF的图片,一张张帖到论坛上,方便阅读。
2018-5-23 10:21
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
什么版本的?
2018-5-24 22:59
0
雪    币: 210
活跃值: (641)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
Thanks for sharing
2018-8-13 10:37
0
雪    币: 69
活跃值: (360)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
mark
2020-3-13 11:33
0
雪    币: 1080
活跃值: (1283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
mark 不错的分享
2020-3-16 02:29
0
雪    币: 2458
活跃值: (3328)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
图没了
2020-3-18 22:59
0
雪    币: 582
活跃值: (317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
图没了 我还以为我这边网络有问题.
2020-3-18 23:50
0
游客
登录 | 注册 方可回帖
返回
//