ネイティブコード解析
必要に迫られてネイティブコード解析をした時のメモです。
objdumpでコードを解析しつつ、バイナリエディタで編集するぐらいで何とかなるかなという程度の解析&パッチ。
コード本体の逆アセンブル
% objdump -d pekedasu > codedump.txt
データ部のダンプ
% objdump -s -j .data pekedasu > datadump.txt
または.rodata(read only data)を出力
これらで作成したデータを基にして解析を行う。データ部のダンプによりアドレスマッピングの確認。
これにより追跡がメチャ楽!
プログラムヘッダについて
ちょっとメモ
CMPでのポイントは20101231の値(0x0132b86f)。バイナリはリトルエンディアン。
81 FA 6F B8 32 01 cmp $0x132b86f,%edx
が目的のネイティブコードとなる。
なお、20111231は0x0132df7fである(まあ計算すればいいだけだが)。