【问题标题】:How to find Number of Program Headers of a ELF如何查找 ELF 的程序头数
【发布时间】:2013-02-11 14:04:37
【问题描述】:

我需要在不使用 objdump 或 readelf 的情况下查找 ELF 可执行文件 (a.out) 的程序头数。我认为可以通过 hexdump 来完成。但我对此一无所知。 请告诉我如何计算它。

谢谢

【问题讨论】:

  • 自己去寻找有关 ELF 格式的文档。
  • 我试过但无法理解。我是初学者,你的小小帮助对我有很大帮助
  • 你为什么要问?您是否考虑过使用某些库来读取 ELF 格式?
  • 其实我需要做这个任务..我不知道如何使用库
  • 然后学习如何使用这些库。 ELF 格式相当复杂。

标签: linux elf


【解决方案1】:

我需要在不使用 objdump 或 readelf 的情况下查找 ELF 可执行文件 (a.out) 的程序头数。

这是一件琐碎的事情。

/usr/include/elf.h 中查找 Elf32_Ehdr(或 Elf64_Ehdr,如果在 64 位机器上)定义。将您在此处看到的内容与 readelf -h a.out 的输出进行比较。这样,每个ELF 二进制文件都以Elf{32,64}_Ehdr 开头的事实是所有你需要的。

您的程序将是:

  • 打开a.out文件
  • 从头开始阅读Elf32_Ehdr(或Elf64_Ehdr
  • 打印.e_phnum
  • 退出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2015-06-01
    • 1970-01-01
    • 2014-03-21
    相关资源
    最近更新 更多