首页
社区
课程
招聘
[原创]自定义linker跑android_server
发表于: 2015-11-26 20:01 20904

[原创]自定义linker跑android_server

2015-11-26 20:01
20904

自定义linker
如大家如知,ida 6.6版的android_server在android5.0下运行时,会报错PIE,

这个是什么意思呢?
在android 2.x及4.0或更远古时代,系统在执行一个elf文件时,这个elf文件是固定加载到某个内存位置的。而后来llvm的出现,使得编译出来的elf文件,可以加载到内存中的任意位置,这种就叫pie。至5.0后,android系统就限死了,必须只能加载pie的文件,也就是说,使用gcc编译的固定基址的elf文件就再也不能执行了,而不幸android_server就是使用gcc编译的固定基址的elf文件。所以大家就用不了android_server去调试android5.0了,这也是art的加固技术,至今仍为神秘的一个重要原因。
想调试android 5.0,可是没有正版6.8怎么办,难道说叼丝就不能学art了吗?
不行,叼丝不认命。我发现了,一种自定义linker去执行非pie文件的方法。

Linker是什么?
Linker就是/system/lib/linker,它是进程启动时第一个加载的模块,它负责管理elf可执行文件以及各个so文件的加载执行,还参与了调试的一些东西。通俗地说,它是一个elf文件的解释器。它可以加载elf可执行文件及so动态库。

在android 5.0下,不能执行android_server是因为android5.0自带的linker不支持加载非pie的elf文件,但如果自己实现一个可以加载pie的linker,不就可以解决这个问题了吗?对的,就是酱紫,补上自己的自定义linker在附件.

使用自定义linker加载android_server ,
步骤如下:
将b 与android_server拷到5.0设备的/data/local目录下
在/data/local下执行./b android_server

这样子就跑起来了。

同样,群号282215163


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 76
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主今天生猛呀 连续放招
2015-11-26 20:44
0
雪    币: 94
活跃值: (2397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
感谢楼主,好好学习下
2015-11-26 22:19
0
雪    币: 118
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
不得不顶,感谢分享
2015-11-26 22:55
0
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
牛逼,楼主
2015-11-27 12:00
0
雪    币: 212
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
oday。。。呵呵。。这个。屌丝,,。。。。丝=毛   ,很黄很暴力呀。看雪大哥不禁止一下
2015-12-1 21:02
0
雪    币: 116
活跃值: (530)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
感谢分享干货!攒个
2015-12-8 16:08
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢楼主,学习了
2016-3-18 16:17
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
怎么写的呀?源码能发我一份吗?pie这东西台讨厌了,进程重启了地址都变了。
2957102586@qq.com , 不胜感激!
2016-5-11 17:09
0
雪    币: 68
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
真是牛逼哄哄啊
2016-5-12 07:56
0
雪    币: 191
活跃值: (195)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
好给力啊,群主好人多谢分享
2016-5-20 22:18
0
雪    币: 2714
活跃值: (1611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错。谢谢分享。。
2016-11-9 21:23
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
期待楼主把源码发一下
2016-11-9 22:04
0
雪    币: 210
活跃值: (641)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
14
lz这么6
2016-11-9 22:14
0
雪    币: 438
活跃值: (228)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
15
谢谢楼主。
2017-3-18 19:21
0
雪    币: 217
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
期待楼主把源码发出来让我们学习一下
2020-4-11 12:40
0
雪    币: 0
活跃值: (353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
在android 5.0下,不能执行android_server是因为android5.0自带的linker不支持加载非pie的elf文件,但如果自己实现一个可以加载pie的linker,不就可以解决这个问题了吗?对的,就是酱紫,补上自己的自定义linker在附件.
那你怎么判断 让系统执行你的linker 而不是系统默认的linker 呢?
2020-5-10 15:50
0
雪    币: 7
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我还是选择使用android 7.x
2020-5-11 12:10
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
同问怎么判断 让系统执行你的linker 而不是系统默认的linker,还有怎么让怎么判断让系统执行你的linker
2022-12-1 14:15
0
雪    币: 2420
活跃值: (2872)
能力值: ( LV5,RANK:61 )
在线值:
发帖
回帖
粉丝
20
wx_空的元 同问怎么判断 让系统执行你的linker 而不是系统默认的linker,还有怎么让怎么判断让系统执行你的linker
elf文件会写,你用010打开就能看到了,以及去看一下周壑大佬的视频
2022-12-2 15:44
0
游客
登录 | 注册 方可回帖
返回
//