Я не могу поручиться за 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 Проход.Я уверен, что многие из методов устарели (и никогда не были хорошей идеей), но они очень хорошо объясняли вещи.