最小の実行ファイルを生成する
これを使えば実行ファイルを扱えるよ!やったね!
偉大なる先人が記事を書いてくださっているので参考にしつつ進めていく 大半はひたすら埋めるだけ
ローダーが見ているのがプログラムヘッダー、リンカーやデバッガが見ているのがセクションヘッダー
なので実行ファイル作るだけならセクションヘッダーいらない
ヘッダーの構造見ていたらどうして機械語が0x1000か始まるのか理解してきた
プログラムヘッダーに埋め込む情報の計算が面倒
プログラムヘッダーの直後に埋めるとヘッダー数でオフセットがずれる
リンカーの動作も理解してきた
これが動かせればスタティックバイナリ吐くリンカーくらいなら作れるのでは
プログラムヘッダーのp_align周りが難しい
p_offsetとp_vaddrがp_alignを法として合同である必要がある、そうじゃないとSEGVする
プログラムで書くならp_offset mod p_align == p_vaddr mod p_align
ページサイズでアラインしてないとだめなの、mmapしてるからではないのか
確かmmapはアラインしてないと失敗する
適当に書いたら動いた
めっちゃ楽しい
これで一歩先に進める
e_entryが0x10000未満だとSEGVする