FreeBSD&中的ELF文件结构Linux的

时间:2011-06-13 08:14:07

标签: c++ linux freebsd elf

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

我如何在FreeBSD / Linux中为ELF标题做到这一点?需要在C / C ++代码的头部添加什么样的预处理器? 根据ELF的结构,FreeBSD和Linux有什么区别吗?

4 个答案:

答案 0 :(得分:5)

您正在寻找libelf

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

以下是一些可以帮助你的指示:

答案 3 :(得分:1)

我无法为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演练更有用了。我相信很多技术已经过时了(而且从来都不是一个好主意),但他们解释得非常好。