【发布时间】:2018-12-19 14:22:20
【问题描述】:
我没有找到任何关于 ELF 文件中重定位表位置的信息。
我的项目是显示有关 ELF 文件的信息,例如 readelf。我做了 Header、Section Header 和 Symbol 表的显示,但我不知道在哪里可以找到重定位表。
谁能解释一下重定位表在 ELF 文件中的位置?
谢谢
【问题讨论】:
标签: elf relocation readelf
我没有找到任何关于 ELF 文件中重定位表位置的信息。
我的项目是显示有关 ELF 文件的信息,例如 readelf。我做了 Header、Section Header 和 Symbol 表的显示,但我不知道在哪里可以找到重定位表。
谁能解释一下重定位表在 ELF 文件中的位置?
谢谢
【问题讨论】:
标签: elf relocation readelf
这取决于你在说什么类型的 ELF 文件,无论如何都有 可以是多个重定位表。
在 ELF 32 位目标文件中,静态代码重定位在 rel.text 部分中指定;
对于 ELF 64 位目标文件,静态代码重定位在 rela.text 部分中指定。
可能有额外的静态重定位部分{rel|rela}.??? 为??? 部分中的对象指定重定位,例如.rela.eh_frame, .rela.init_array.
在 ELF 可执行文件或 DSO 中,.rela.dyn 部分指定变量的动态重定位。
rela.plt 部分指定函数的动态重定位。
【讨论】: