关于Linux驱动文件的加载以及相关符号的地址说明

大家熟知的ELF文件有三种类型:1. 可重定位,2 可执行,3. 动态链接。关于ELF的相关资料网上很多,也讲的十分详细。

在此给出一个链接的细节说明。

一般的Linux的驱动模块编译出来的*.ko文件其实就是可重定位的文件,其格式和一般Use mode编译的*.o相似,

这一点大家可以自己去尝试下,使用readelf -h * 读取下头部即可。

但是整个insmod ×.ko的过程和×.o 的过程存在差异:

*.o的静态链接之后,找到相关的符号,并修改的符号的地址,

而insmod ×ko的使用方式其实类似于*so, 通过了×plt,got 段做了地址的偏移。

ARM有一个trace的模块叫gator,大家可以尝试对应地址和符号的位置。


就讲到这里,希望对读者有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值