FreeBSD 和 Linux 中的 ELF 文件结构

ELF file structure in FreeBSD & Linux

本文关键字:ELF 文件结构 中的 Linux FreeBSD      更新时间:2023-10-16

在PE(适用于windows)中,可以通过#include<windows.h>读取该结构的头/节,也可以使用结构体PIMAGE_DOS_HEADER读取任何PE文件中的dos头。

如何在FreeBSD/Linux中为ELF头执行此操作?在C/C++代码的开头需要添加什么类型的预处理器?FreeBSD和Linux在ELF的结构上有什么不同吗?

您正在寻找libelf。

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

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

以下是一些可以帮助您的指针:

  • Oracle文章LibElf和GElf-一个操作ELf文件的库

  • GElf

  • Libelf主页

我不能担保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微型可执行程序更有用的了。我确信许多技术已经过时了(而且从来都不是一个好主意),但它们解释得很好。