tunozemichanの日記 / tunozemichan's diary

SORD社のコンピューターM68やM68MXの解析についての備忘録です。This blog is a memorandum about the analysis of SORD's computers M68 and M68MX.

radare2でSORD M68MX(m68k binary)のROMを逆アセンブルする。

前回はGNUのobjdumpによる逆アセンブルを行ったが、リストを読んでいくとやはり解析不能な部分に遭遇する。

前回同様Twitterで愚痴っていたら、海外の方から、radare2でもm68kのバイナリを解析できるとの情報を教えてもらえました。

 

WSL2上でもradare2をインストールできます。

 

$ git clone https://github.com/radare/radare2.git

 

radare2のディレクトリに入り、以下のように入力するだけです。

 

$ ./sys/install.sh

 

必要なパッケージがあるときはその都度言ってきますので、それに従ってapt installしてください。

インストールが済んだら、radare2のパッケージをインストールするために以下のように入力します。

 

$ r2pm init

 

これでパッケージを使用できるようになりました。デフォルトでもcapstoneのm68kアセンブラ/逆アセンブラが入っていますが、詳細不明ながら別のパッケージもあるのでインストールしておきます。

 

$ r2pm -i m68k-net

 

これで、radare2を起動するときに以下のようにすれば、このプラグインが使われます(bios.binは適当なm68kのバイナリファイル)。

 

$ r2 -a m68k.net bios.bin

 

デフォルトのcapstoneでよければ、

 

$ r2 -a m68k bios.bin

 

です。 

 

ちなみに、逆アセンブルはpdコマンドです。現在の番地(ここでは0xc2)から、10行?逆アセンブルしたければ、

 

[0x000000c2]>pd 10

 

とか入力します。

解析がうまくいかないときは、再度解析コマンドを入れるとうまくいく事があります。

 

[0x000000c2]>aaaa

 

こちらから、「ここはこうでは?」と言ったサゼッションができるといいんですが、できるのかできるとしたらどうやるのか不明です。

 

 (蛇足)

Z80を解析したい場合は、

 

$ r2pm -i z80-nc

 

プラグインをインストールして、r2起動時に、

 

$ r2 -a z80.nc ROM.bin

 

とかするとよいみたいです。