c - 枚举当前加载的所有共享对象的所有 ELF 部分

标签 c linux process dynamic-linking elf

我正在寻找一种很好的方法来枚举所有 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/

相关文章:

c - fsetpos 未按预期设置文件指针的位置

c - 试图理解MD5算法

c - 关于 TCP 连接缓冲区的问题

php - 在 apache 上将不同的网站分配给不同的网络

java - 在java中,排序时,当我有相同的值时,特定问题的解决方案是什么

c - Linux 内核 3.16 上的 Moxa RealTTY 模块编译错误

python - Linux系统上使用Python从内网邮箱获取邮件

c++ - Linux - 从管道读取的子级接收发送到标准输出的调试消息

android - 如何在 Android (Jelly Bean) 中终止一个进程

c# - asp.net C# 中长时间运行的进程