-
Notifications
You must be signed in to change notification settings - Fork 3
COFF形式ファイルのいろいろ
hangedman edited this page Aug 30, 2023
·
29 revisions
Microsoft PE形式ファイルおよびCOFF形式ファイルの仕様がわかるもの
このあたりに実際の処理の記述がある
ヘッダ部分は140byte固定のようだ
ボディ部分の出力
- 0 ~ 20byte: COFFのヘッダー
- 21 ~ 可変長: section table
- .text
- rawData: アセンブラの機械語を含む https://www.delorie.com/djgpp/doc/coff/
- relocations: Relocation Directives https://www.delorie.com/djgpp/doc/coff/reloc.html
- .data
- .bss
- .text
- 36byte: PE auxiliary format 4: ファイル名を含む PE auxiliary format 4
- 36byte: 普通のシンボルテーブル: .text
- 36byte: 普通のシンボルテーブル: .data
- 36byte: 普通のシンボルテーブル: .bss
- 36byte: シンボルテーブル: COFF: Symbol Table
- 可変長: ストリングテーブル: COFF: String Table
https://github.com/HobbyOSs/opennask/wiki/Opecode-CALL
- 下記のようなアセンブラを書くと、coffのrelocationに_inthandler27のエントリーが設定される
EXTERN _inthandler21
xxx:
CALL _inthandler27
xxx:
JMP _inthandler27