OllyDbg
EXEファイルのデバッガ的なやつ。(たぶんEXE以外にも使えると思いますが…)
ブレークポイントを貼って、アセンブラ命令を一つずつ実行させることが出来ます。
.text .idata .bss
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 9月 23
これらはセグメントセクションと呼ばれ、命令じゃなくてデータが格納されている。
セグメントセクションのサイズは予め決められているが、EXEファイルを作成するときについて言えば、各セグメントセクションのサイズも指定してやる必要がある。
最小サイズは0x1000。もちろん各セグメントセクションのサイズを0x1000以上に拡張することは出来る。
メモリとファイル
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 9月 23
セグメントセクションに割り当てられているサイズはメモリの話で、メモリに割り当てられるサイズと、ファイルに割り当てられるサイズはそれぞれ独立して管理されている。
ファイルに割り当てられるサイズは0x200が最小で、メモリに割り当てられるサイズは0x1000が最小である。
ファイルの中身がOSによってメモリに展開され、メモリに展開されたデータは演算されてディスクに戻されたり画面に表示されたりする。
追記
ELFファイルの中はセクションとセグメントで二重に分割されています。属性が共通するセクションをグループ化したものがセグメントです。セクションはリンカ、セグメントはローダで処理することを想定したブロックです。
というわけで、セグメントをセクションに切り替えました。