Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

いにしえのCPU逆アセンブラ、詰め合わせセット

Last updated at Posted at 2025-01-29

これは、クラシカルな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記述から落とし込んだ奴なので。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?