在ld.so中是否有任何宏或指针可以给我所有plt部分的地址范围?

时间:2014-03-02 06:56:41

标签: c linux compilation linker elf

我正在修改libc6动态链接器。对于运行的给定程序以及加载它的所有共享库,我需要所有相应.plt部分的地址范围(起始地址+长度)。

链接器ld.so代码中是否有可用于此目的的宏或指针? 我正在浏览链接器代码,但由于缺乏此透视图中的文档,我无法找出符合我目的的确切元素。谷歌没有给出任何对我有用的具体结果。

由于链接器执行初始加载和重定位,因此它应该具有这些信息。 任何建议都非常感谢。

修改

有没有办法通过链接器获取节头?我可以使用它们来获取plt section信息。

由于

1 个答案:

答案 0 :(得分:2)

在Linux上,你可能想要使用dl_iterate_phdr(3)

顺便说一句,你应该研究源代码,或许修改一下,MUSL libc;它非常易读,并且有自己的动态链接器。