by shigemk2

当面は技術的なことしか書かない

メモ #ikebin

OllyDbg

OllyDbg v1.10

f:id:shigemk2:20140923181404p:plain

EXEファイルのデバッガ的なやつ。(たぶんEXE以外にも使えると思いますが…)

ブレークポイントを貼って、アセンブラ命令を一つずつ実行させることが出来ます。

.text .idata .bss

これらはセグメントセクションと呼ばれ、命令じゃなくてデータが格納されている。 セグメントセクションのサイズは予め決められているが、EXEファイルを作成するときについて言えば、各セグメントセクションのサイズも指定してやる必要がある。

最小サイズは0x1000。もちろん各セグメントセクションのサイズを0x1000以上に拡張することは出来る。

メモリとファイル

セグメントセクションに割り当てられているサイズはメモリの話で、メモリに割り当てられるサイズと、ファイルに割り当てられるサイズはそれぞれ独立して管理されている。

ファイルに割り当てられるサイズは0x200が最小で、メモリに割り当てられるサイズは0x1000が最小である。

ファイルの中身がOSによってメモリに展開され、メモリに展開されたデータは演算されてディスクに戻されたり画面に表示されたりする。

追記

ELFの動的リンク(1) - 七誌の開発日記

ELFファイルの中はセクションとセグメントで二重に分割されています。属性が共通するセクションをグループ化したものがセグメントです。セクションはリンカ、セグメントはローダで処理することを想定したブロックです。

というわけで、セグメントをセクションに切り替えました。