【问题标题】:Is there any documentation available for dynamic linker functions for glibc 6?是否有任何可用于 glibc 6 的动态链接器函数的文档?
【发布时间】:2013-12-01 07:27:36
【问题描述】:

我需要它,因为我必须修改链接器,特别是它解析 plt 部分中的符号并在 GOT 中更新它们的部分。

【问题讨论】:

  • 你想通过修改动态链接器来解决什么问题?也许您只是在寻找dlopen() 等人?
  • @H2CO3 我需要修改解析 GOT 中 plt 调用符号的“解析器”函数。基本上我想修改这个解析器函数并获取它解析的地址并在其他地方使用它。您能否建议一些好的资源来了解相同的内部结构(文档类型或任何可以做的事情)谢谢
  • 那不是 ld-linux.so 的一部分吗?
  • @MarcovandeVoort 他想修改ld-linux.so的内部结构
  • 是的,我一开始看错了。谢谢

标签: c linux compiler-construction linker glibc


【解决方案1】:

正如我在之前对您问题的回答中发布的那样,this page is great

仔细阅读——开头还有一些参考资料和书籍(有用的书籍和参考资料标题)。

您可能还想查看 Levine 的 Linkers and Loaders 以供参考。

【讨论】:

  • 实际上我正在尝试在 elf/dl-runtime.c 中找到链接器代码的文档,特别是解析器函数。当解析器函数解析被调用函数的实际绝对地址时,我第一次遇到一个问题,它是从解析器函数内跳转到该地址还是从 GOT 条目读取更新的绝对地址然后跳转到它。(只是第一次,我知道之后它直接从 GOT 读取并跳转)。
  • @abhi 如果您正在寻找“干净且经过验证的文档”,您可能找不到它。您要做的就是彻底阅读发布的页面并在调试器中戳代码。
  • @abhi 至于问题,它是非常特定于实现的。我打赌直接从解析器离开,因为那里已经知道地址。但是你最好为你的平台拆卸 ELF 的.plt 部分并在那里查看。甚至在调试器中单步执行。
  • .plt 部分部分非常详细地描述了它,并提到了要查看的源文件。
  • 感谢您的回复。我会通过它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 2011-02-14
  • 2013-01-12
  • 2010-10-01
相关资源
最近更新 更多