2.5. Python

2.5.1. 環境構築

図 2.8 IPython

IPython

先達の遺してくれた逆アセンブラ、専用ビューワー、データ解析変換抽出ツールがいくら優れたものであるとはいえ、 それらだけを利用していたのでは、ROM データから得られる情報は当然限定されてくる。 解析作業を割と長い期間重ねていくうちに、何か特定の目的を実現するためのツールを自作したくなってくるものだ。 そういうツールの要件は、往々にして既存のツールの組み合わせだけでは実現できぬような特殊なものであることが多い。 Unix/Linux, Cygwin の coreutils, textutils, etc. 各種ツールのコンビネーションだけでは太刀打ちできぬような要求がすぐに出てくる。 記者は、いわゆるプログラミング言語によるツール作成を模索することになった。

いきなり結論を出すが、解析作業を補助するツールとしては、高級言語ではなくスクリプト言語を利用するのだ。 機能性と実行速度を第一に求めるのであれば、C/C++, Java 等の高級プログラミング言語を用いるが確かにいいだろう。 しかし、我々解析人は解析目的のツールを開発するのが目的ではないのだ。 むしろ細かい箇所を簡単に修正して、すぐに動作を確認できるような言語が向いていると考えられる。 ならばこそのスクリプト言語だ。

スクリプト言語として著名なものは Perl, Ruby, Python あたりだろう。 この選択肢から、記者は個人的な趣味で Python をツール作成の言語として採用した。 見るからにライブラリは充実しているし、逐次解釈形式による実行ではないから動作は案外悪くないし、 そして何より、独特のインデント様式を規定されているが故のコードの書きやすさがある。

読者が既に好みのスクリプトを何かお持ちならば、 ここで記者に言われるまでもなく、既にそれを解析作業に取り入れているに違いない。 もし貴女がそうでなければ、この機会に自分の好みに合ったスクリプト言語を一つ見つけ、 少なくとも思い描くツールを作成できる程度の力量を持つ程度にまで、それを習得する事を強くお勧めする。 ドラクエの解析に飽きても、その経験はいつか活きてくる筈だ。

2.5.1. 環境構築

筆者の自習用ノートに色々と記した。