PE勉強会#3参加メモ その2

このエントリの和訳です。http://d.hatena.ne.jp/takahirox/20110503/1304411632

はじめに

このエントリは「PE勉強会#3参加メモ」の続きです。http://d.hatena.ne.jp/takahirox/20110420/1303307111

参考リンク

やったこと

PEファイルのヘッダ詳細を表示するツールを作りました。きっとバイナリファイルの編集や解析の役に立つでしょう。

このツール自体は勉強会の内容とはあまり関係ないのですが。次に繋がると思うので。

実行例

% ./analysis.exe ./homu.exe
*IMAGE_DOS_HEADER
 e_magic    : 5A4D [MZ]
 e_cblp     : 0090
 e_cp       : 0003
 e_cparhdr  : 0004
 e_minalloc : 0000
 e_maxalloc : FFFF
 e_ss       : 0000
 e_sp       : 00B8
 e_csum     : 0000
 e_ip       : 0000
 e_cs       : 0000
 e_lfarlc   : 0040
 e_ovno     : 0000
 e_res[4]   : 0000 0000 0000 0000
 e_oemid    : 0000
 e_oeminfo  : 0000
 e_res2[10] : 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
 e_lfanew   : 00000080
*IMAGE_NT_HEADERS32
 Signature  : 00004550 [PE]

... omit ...

特徴

  • 入力ファイルがPEファイルかどうかチェックする
    • PEファイルでなければヘッダの表示は行わない
  • PEファイルヘッダの詳細を表示する


"objdump -x"でも同じようなことができるので、あまりこのツールのメリットはないのですが、今後機能を拡張していくことで何か面白いことができたらなぁと思っています。

参考リンク

このツールを作るのに、以下のエントリを参考にしました。ありがとうございます

終わりに

ヘッダ情報を目視で確認するのが億劫だったので、こんなツールを作成してみました。

愚直に実装してみたのですが、もっとうまい書き方はなかっただろうかというのが心残りです。

次回のメモでは.idataに関するまとめを書いてみようと思っています。