首页
社区
课程
招聘
[原创]【ARM】安卓SO文件重定位类型总结
发表于: 2017-11-13 17:15 6337

[原创]【ARM】安卓SO文件重定位类型总结

2017-11-13 17:15
6337
1 承接上一篇说rel got plt的帖子, 这篇叨叨下重定位类型
上一贴《安卓SO中GOT REL PLT 作用与关系》
https://bbs.pediy.com/thread-221821.htm 

有前辈写过类似的内容
《基于Android的ELF PLT/GOT符号重定向过程及ELF Hook实现》
https://bbs.pediy.com/thread-193720.htm


2 重定位类型总结:



3 这个有什么卵用?
(1)提高看汇编的能力,摆弄明白了,一眼就能从汇编里看出来,怎么访问或调用符号的。
(2)got表hook时,有点用处。
(3)DIY魔改ELF时,有点用处。
(4)写调试器时,有点用处。
(5)写VMP或变形时,有点用处。


4 样本上传弄好了,有感兴趣的可以看下
都是很无聊很蛋疼的细节,估计没什么人感兴趣~



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 7826
活跃值: (5257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2017-11-14 09:59
0
雪    币: 15947
活跃值: (7193)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
安卓studio编译的SO,好像没有重定位表?都是用call得到返回地址然后加偏移得到实际地址。
2017-11-14 10:21
0
雪    币: 2097
活跃值: (8216)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
4



tDasm

安卓studio编译的SO,好像没有重定位表?都是用call得到返回地址然后加偏移得到实际地址。
内部函数的调用可能是相对寻址,也可能通过生成一个重定位项然后走plt-got,
我猜这应该和编译选项有关,具体希望有大佬能指点一下。。

上传的样本中使用的是ndkR12编译,表格中的1(1)就没有生成重定位项,而是直接通过相对寻址完成的跳转。
同样的样本使用nkdR13编译时,该函数就没有用相对寻址,而是生成重定位项和plt项got项了。
2017-11-14 11:03
0
游客
登录 | 注册 方可回帖
返回