Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

ELF 入門

Windows

オブジェクトフォーマットはコンパイラ依存で、

  • COFF (VC)
  • OMF (BCC, DMC)
  • ELF (GCC)

など (TODO: 他コンパイラ追加) 。 OMF2COFF など、各種変換などもあるけど うまくいったりいかなかったり、 あと .lib も無数に種類があって実にややこしい。

実行ファイルフォーマットは PE/COFF だけのはず。

PE については MZ ヘッダがあって COFF ヘッダがあって… とか適当にぐぐればわかると思う。 (TODO: あとで書く)

OMF はかなり異色つーか古いオブジェクトフォーマットらしく、 レコードがひたすら並んでて、 DWARF2 とかに近いかもなぁという印象。

MacOSX

Mach-O が使われている。 色々とツールが違うので他の項目参照。

Mach-O は mach header があって、 そのあと load command というヤツで、 メモリの構成などを指示するようになっている。 mach header が ELF header に対応してて load command が program header みたいなもんだと 思えばまぁ良さげな。

Universal Binary は lipo で操作可能。

(TODO: mach header でバイトオーダーを指定できるとか)

すばらしー: Mach-O入門実践編

Last modified:2024/05/26 14:55:02
Keyword(s):
References:[PortableBinaryHacks]