枚举当前已加载的所有共享库的所有ELF节

use*_*104 5 c linux process elf dynamic-linking

我正在寻找一种枚举所有ELF节及其当前二进制文件的地址以及当前进程可能已加载的所有共享对象的好方法。

我知道dl_iterate_phdr()的存在,这使我可以轻松使用ELF 列表,但是我正在寻找ELF ,所以这不是我的正确选择。

我不关心可移植性,只要它可在带有ELF的Linux上运行,我就很高兴!

任何提示表示赞赏!

D C*_*zee 3

我假设您正在尝试以编程方式从 C/C++ 程序访问此信息。我怀疑您应该能够使用GNU 二进制文件描述符库(BFD) 执行您想要的操作,该库用于实现 GNU 链接器、objdump 等(它还有一篇Wikipedia 文章)。请特别参阅本手册的第 2.6 节,其中全部都是有关章节的内容。BFD 创建“ struct bfd_section ”的链表,通过struct bfd的“sections”成员访问。我认为您应该能够通过在 argv[0] 上使用bfd_fopen打开当前的二进制文件。BFD 附带binutils