【问题标题】:ELF file structure in FreeBSD & LinuxFreeBSD 和 Linux 中的 ELF 文件结构
【发布时间】:2011-06-13 16:33:16
【问题描述】:

例如,在 PE(对于 Windows)中,可以通过 #include<windows.h> 读取该结构的标题/部分,并且可以使用结构 PIMAGE_DOS_HEADER 读取任何 PE 文件中的 dos 标题。

如何在 FreeBSD/Linux 中为 ELF 标头执行此操作?需要在 C/C++ 代码的头部添加什么样的预处理器? FreeBSD和Linux在ELF的结构上有什么区别吗?

【问题讨论】:

  • ELF 结构将提供给您使用简单的 Google 搜索。我相信您可以轻松找到有关如何阅读其标题的信息。你试过了吗?
  • 是的,我试图搜索,但由于我的英语不好,我无法轻易看到答案。
  • 是的,但是在 Linux 中请求一个库来读取 ELF 文件并不比这个网站上的许多其他问题更糟糕。

标签: c++ linux freebsd elf


【解决方案1】:

您正在寻找libelf

【讨论】:

  • 或者你可以使用elf.h来定义相关的数据结构。
【解决方案2】:

查看 readelf 的来源。或者只是谷歌。例如,这个http://www.scribd.com/doc/7027807/ELF-Format 看起来很有希望。

如果您只想要现有代码,请尝试http://www.linux.com/learn/docs/man/2838-elf5

【讨论】:

    【解决方案3】:

    这里有一些建议可以帮助你:

    【讨论】:

      【解决方案4】:

      我不能保证 FreeBSD,但在 Linux 上,elf(5) 手册页中有很多细节:

      NAME
         elf - format of Executable and Linking Format (ELF) files
      
      SYNOPSIS
         #include <elf.h>
      
      DESCRIPTION
         The header file <elf.h> defines the format of ELF executable
         binary files.  Amongst these files are normal executable
         files, relocatable object files, core files and shared
         libraries.
      ...
      

      当我需要了解 ELF 时,我发现没有什么比 MuppetLabs Tiny Executable 演练更有用的了。我确信许多技术已经过时(而且从来都不是一个好主意),但它们解释得很好。

      【讨论】:

        猜你喜欢
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 2011-08-22
        • 2013-01-02
        • 1970-01-01
        • 2011-01-31
        • 2013-10-30
        相关资源
        最近更新 更多