ファイルの解析
http://www.byakuya-shobo.co.jp/hj/data/HJ2013_03_Q1.zip
から圧縮ファイルをダウンロード
Unzip HJ2013_03_Q1.zip
で解凍し
bin200
をだす
この拡張子もないファイルを解析していく
VMイメージのBT5R3 は
USキーボードなので
USキーボードと日本のキーボードの違い
http://www.nagasaki-gaigo.ac.jp/toguchi/pc/multilingual/keyboard_us_jis.htm
を見ながら行う
一番わかりにくいのは
全角、半角の切り替えキーが
shift + 全角半角 で ~
全角半角は` というバッククオートになるということ
USキーボード形式は全角半角はたしかに使うことがないと思う
だって英語圏だし
今回のこの問題に必要なスキルは
バイナリ解析系
まず、どんなファイルかを調べるため
file コマンドで調べる
file bin200
すると
bin200: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
となる
この結果から読み取れるのは
ELF 32-bit LSB executable, Intel 80386,
ということなので
IA32アーキテクチャの32bit Linux 用ELFファイルであること
このファイルのバイナリを静的解析して処理のあたりをみつける
使うのは
IDA Pro free 5.0
とはいっても使い方がわからないので検索
http://ameblo.jp/a-f-s-g/entry-11476490443.html
によれば vim でもバイナリエディタ代わりになるとのこと
vim bin200
でファイルを開いて
:%! xxd でバイナリが表示
使い方いまいちわからないので後にして今後の参考に
backtrack ida
で検索したら
http://www.byakuya-shobo.co.jp/hj/moh2/bt5_tools_list.html#p6
に
Reverse Engineering のところに
install ida-pro free
と有ったので
仮想マシンのBT5R3 で
startx で GUI画面にして
Applications > BackTrack > Reverse Engineering > ida-pro free
で起動
ただ、時間がなかったので
途中でキャンセルしたらインストールできなくなったため
次回。新しく仮想マシンを作りなおして実験
今回は
gdb という動的解析用デバッガーで
スタックとプログラムカウンター(EIPレジスター)
をいじくり
ptrace を経由せずに直接 GeneratePassword を実行する
まず
apt-get install gdb
でインストールして
gdb ./bin200 を行う
この時点ではまだ実行されていないので
break main
でブレークポイントの設置
しかし、次の gdbの使い方がわからないので
とりあえず
これの使い方を調べるところからになりそう