■なぜ、undocumented情報が必要になったか

1995年にシャープ(株)により開催されたアドインコンテストに応募したのですが、開発に非常に手間取りました。

アドインというのはソース作成やコンパイルまではパソコンで行うのですが、実際の実行/デバッグはザウルス上で行わねばならず、そのためにパソコンからザウルスへ転送という作業が必要となります。

このとき最も泣かされたのがWindows のDOS窓から転送を行うと2回に1回はエラーになる現象です。

エラーになると、パソコンリンクを解除したり、再転送のためにプログラムを一旦終了したりと無駄な時間が過ぎて行き締め切り間際はパニック状態でした。

このため、コンテスト終了後、アドイン開発キットのユーザーサポートに対して、Windows 版の転送ソフトを作りたいからプロトコルを教えて欲しいとお願いしたのですが、「非公開情報」とのことで断られています。

また、FZAURUS の5番会議室で回答を付けるようになったのもこの頃で、その中にダウンローダで転送できませんという質問が目立つようになっていました。

原因はもちろんDOS 窓上でMS-DOS版のダウンローダを実行したためであり、根本的な解決にはWindows を終了してダウンローダを使うという方法を回答としてきましたが、Windows 全盛時代を迎えつつあった当時、何が悲しくてダウンローダのためにWindows を終了しなければならないのかという漠然とした思いがありました。

そこで、無いものは自分で作ってしまおうという考えの元、undocumentedな情報を追求し始め、それは今も続いています。

ひとたびundocumentedが明かされると、それを突破口として次々に解析が進むもので、当初ダウンローダだけを考えていたのですが、あれもこれもと考えてプログラムを続けているうちにZauBASE というプログラムが生まれることになったのです。


■どのように解析を進めてきたか

undocumentedな情報の収集方法にプログラムをリバースエンジニアリングするという方法があります。

リバース(逆)の通り、プログラムコードを逆アセンブル:逆コンパイルし、オリジナルのソースコードを作りそこから必要な情報を得る手法です。

有名な話としては、ロータス123を作ったスタッフは、同業他社の表計算ソフトを徹底的に逆アセンブルして、それより優れたプログラムを作成しました。

しかし、現在では、この手法で解析をおこなうことはソフトウェア使用契約で禁じられている場合がほとんどで、合法的な解析方法としては認められていません。

また、一口にリバースすると言っても、そのためのツール類を揃える必要性や、100%正確でないソースから、オリジナルの情報を導き出すのも職人芸的な能力を必要とし、参考になるプログラムがあるといっても即解析できる代物ではありません。

そのため、私の場合はプログラム内部の解析ではなく、外部に現れる情報を数多く収集し、規則性を見つけだすという方法を採りました。

解析を進めるに当たって利用したものは、シャープ(株)アドインダウンローダ、ザウルスリンク、アドイン開発キットCE-KT1です。

これらのソフトと、ザウルスの間でやりとりされる通信データ、生成された画像などを支援ツールで解析することで、規則性を発見しています。

アドインの転送に関してはダウンローダや、アドイン開発キットの通信を解析、ザウルス内部ファイルの転送に関してはザウルスリンクの通信を解析しています。

また、画像に関しては、アドイン開発キットに付属している画像作成ツールで作成したデータを解析しています。


これらの解析を行うために様々な支援ツールを自作しています。->ツールを作る