ELFの構造を掴む

開始アドレスが標準で0x80000000辺りにある謎はおいておいて、
ひとまずELFの構造を知る作業に取り掛かった。


まずはとりあえずELFヘッダ、プログラムヘッダ、セクションヘッダの構造体を
定義し、適当に作ったELFファイル(apptest.elf)を読み込んで、
その構造を解析している。


分かった事としては、
以下のような構造を取るということである。

                                                                                        • -

ELFヘッダ

                                                                                        • -

プログラムヘッダ(個数はELFヘッダに記載)

                                                                                        • -

実際のプログラム

                                                                                        • -

プログラムで使うデータ

                                                                                        • -

コメントとかストリングテーブルとか

                                                                                        • -

セクションヘッダ(個数はELFヘッダに記載)

                                                                                        • -

後はごにょごにょと(ストリングテーブル)

                                                                                        • -


最初のストリングテーブルにセクション名が入っている。
よくある.textとか.bssなどである。


あんまり良い日本語資料が無いもので、色々と苦労している。
まぁこれくらい常識で暗黙の了解だというのなら、
それはもう言う事はありませんが。


ちなみに各ヘッダ(ELF、プログラム、セクション)の構造は、
以下のPDFを見てちょーだい。
全部英語だけどさ、ELFHeaderとかProgramHeaderとかSectionHeaderとか
書いてあるからまぁ分かるっしょ。

ELF仕様書


とりあえず今はここまでの情報を得ただけです。
やっぱりページングが必要な予感がするなぁ。
やるっきゃねぇか。