これは、クラシカルなCPU(i8086exe/Win3.1/Win32/WinCE)
x86/MIPS/ARM32/SH2 向けのバイナリー解析用・逆アセンブラです。
概要:
・DISWIN は、WindowsのNE(New Executable)フォーマットおよび、
PE(Portable Executable)フォーマットの実行ファイルを解析するツールです
i8086/80386~80586 と、WindowsCEの MIPS / ARM32 / SH2 の実行ファイル(exe)
に対応しています。
自分の作成したexeであれば、シンボル情報の読み込みを行なってラベル名表示も出来ます。
NE/PEフォーマット以外に、ROMのようなフォーマットを持たないバイナリーも一応入力
が可能です。
公開リポジトリ
ビルド方法:
・おそらく、32bit環境のgcc (Win32/Linuxいずれか)が必要です
・make でビルドします。
・x86_64環境のgcc (64bit) では正常な実行ファイルが得られないようです。
・いずれ 64bit gcc環境でリビルド出来るようにする予定ですが、未着手です。
・一応、diswin,disr3000,disshはx64 linux gccでビルド出来るようになっています。
Diswin 0.19 の概要
-
DISWIN(Windows用逆アセンブラ)
-
Borland-C++ 4.0J/3.1 or Turbo-C 2.0 LARGE MODEL
-
Compile option= -O -ml -w-rvl -w-pro
-
使い方:
-
DISWIN -Option filename[.EXE .DLL]
-
オプション:
-
-b セグメント化されたバイナリーを出力する
-
-s 逆アセンブルソースファイルを出力する
-
-u 逆アセンブルリストを大文字で出力
-
-t エントリーテーブルを表示するモード
-
-r リロケーション情報を表示するモード
-
-x EXPORTされたエントリーのリストのみ表示する
-
-v verbose mode
-
注意:
-
ラージモデルが前提.
なんで、いまごろ、いにしえなの?
- ちょっと自分で使う用事ができてしまったため、Diswin19を掘り起こしてみました。
- おまけで、MIPS/ARM32/SH2も付いてます。
- i8086/286/386/486/586 (Pentium) は、もはやれがしー
SC/MP とかないの?
- よくぞ聞いてくれました。
- SC/MP-IIエミュレーター上で動くセルフ逆アセンブラは、ありまーす。
./scmp2.exe -q moni2.bin
* SC/MP-II Monitor *
>l
0000 08 NOP
0001 31 XPAL P1
0002 C4 80 LDI #80
0004 31 XPAL P1
0005 35 XPAH P1
0006 C4 FF LDI #FF
0008 35 XPAH P1
0009 C4 FE LDI #FE
000B C9 00 ST 00(P1)
000D 37 XPAH P3
000E C4 01 LDI #01
0010 37 XPAH P3
0011 33 XPAL P3
0012 C4 CF LDI #CF
0014 33 XPAL P3
0015 3F XPPC P3
>
・ Cで書いた奴はないのか?
SC/MP-II エミュレータのデバッグ用に、ステップ実行ログを逆アセンブルしてログに吐く機能があるので、そこを使えばできるとおもう・・
そもそも、このセルフ逆アセンブラは、C記述から落とし込んだ奴なので。