ELF 文件中重定位表的位置

Location of Relocation table in ELF file

我没有找到任何关于 ELF 文件中重定位表位置的信息。

我的项目是显示关于像 readelf 这样的 ELF 文件的信息。我做了 Header、Section Header 和 Symbol 表的显示,但我不知道在哪里可以找到重定位表。

谁能解释一下重定位表在 ELF 文件中的位置?

谢谢


这取决于你在说什么类型的 ELF 文件,无论如何都有
可以是多个重定位表。

在 ELF 32 位目标文件中,静态代码重定位在 rel.text 部分中指定;
对于 ELF 64 位目标文件,静态代码重定位在 rela.text 部分中指定。
可能有额外的静态重定位部分 {rel|rela}.?????? 部分中的对象指定重定位,例如.rela.eh_frame, .rela.init_array.

在 ELF 可执行文件或 DSO 中,.rela.dyn 部分指定变量的动态重定位。
rela.plt 部分指定函数的动态重定位。