我正在寻找一种很好的方法来枚举所有 ELF 部分及其当前二进制文件的地址以及当前进程可能已加载的所有共享对象。
我知道 dl_iterate_phdr() 的存在,它为我提供了一个易于使用的 ELF 段列表,但我正在寻找 ELF 部分,所以它不是正确的呼唤我。
我不关心可移植性,只要它能在带有 ELF 的 Linux 上运行我就很高兴!
感谢任何提示!
最佳答案
我假设您正在尝试通过 C/C++ 程序以编程方式访问此信息。我怀疑你应该能够用 GNU Binary File Descriptor library 做你想做的事(BFD),用于实现 GNU 链接器、objdump 等(它还有一个 Wikipedia article )。具体见section 2.6手册的全部内容都是关于章节的。 BFD 创建一个“struct bfd_section”的链表,通过struct bfd 的“sections”成员访问。 .我认为您应该能够使用 bfd_fopen 打开当前二进制文件在 argv[0] 上。 BFD 附带 binutils .
关于c - 枚举当前加载的所有共享对象的所有 ELF 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104694/