ELF

  • executable and linkable format.
  • Linux の実行ファイルの形式

cheatsheet

ELF Format Cheatsheet より

header
program header
sections
.text // program
.rodata
.data // 書き換え可能な変数 e.g. global, static変数
.bss

section headers
  • ELF header
  • Prog headers(e_phnum 個ある)
  • 各 section
  • section headers(e_phnum 個ある)
    が並んでいる.

ELFの二面性

ELF形式の最大の特徴、つまり ELF を理解する上で重要なポイントは、プログラムの「リンク」と「実行」に応じて二重構造(二面性)が埋め込まれている点にあります。

ELF header

Program header

segment: section の集まりが順番に並んでいる
- $ readelf: Section to Segment mapping に対応が書いてある
program header : segment のメタ情報

実装

参考文献