プログラム作り,特にデバッグやプロテクト外しは正に推理パズルであると思う.現代の世にシャーロック・ホームズが生きていたなら,きっと彼はスーパープログラマとしてコンピュタ犯罪に立ち向かっている事だろうと思う.
彼の手にかかれば犯罪捜査だけでなく,我々凡人の作った迷プログラムのデバッグもいとも簡単に解決してくれるだろう.なにしろデバッグは根気と感の勝負.それと緻密なシステム把握を要求する.まさにホームズにうってつけと思うがどうだろうか.
さて,ホームズの夢物語はそれとして,つい先日頂いた年賀状を整理するべく,適当なDBソフト(あの誰もがつくりたがる住所録を私も作ろうと思ったのである.)を捜していたところ,雑誌のおまけディスクにカードデータベースの評価用ソフトがあったのを思いだした.記事によるとサンプル版につきデータ登録はわずかしかできないとあった.動かしてみるとなかなか快適なソフトである.住所録程度にはもってこい.色々試している内に悪の虫が騒ぎだした.なるほど十数件のデータ登録しかできない.これ以上登録すると,もうだめです,とお叱りのメッセージが表示される.なんとかプロテクトを外せないものかと色々逆アセンブルするなりしてみたがどうもうまくいかない.そんな簡単に外せるようならおまけにつけたりしないわな,となかば諦めかけたが,不思議な事に気付いた.このソフトの評価用としてついてきているサンプルファイルには登録制限数以上の数のデータが登録してある.そしてこれがなんの問題もなく検索,並び替などの処理ができる.データ修正によるファイル書き戻しも正しくできる.どうやらプロテクトは,新規登録の部分だけらしい事がわかった.一度制限数以上の空白データが登録されたファイルを作成さえすれば,あとは登録操作の代わりに修正操作を行えばプロテクトから逃れられるわけだ.
それではと,まず数件のデータを登録する.システムは必要なデータファイルやインデックスファイルをディスク上に生成した.これらのファイルをTYPEコマンドで表示し,そのファイル構造(レコード構造)を調べた.一般的にこの種のファイルは,別システムへのデータコンバートが容易にできるようにとの配慮から,テキストファイルになっているのが幸いした.関連ファイルが数種類あったが,これも皆TYPEさせてみた.このような解析で大体把握できる.あとは,こちらの予測で適当に解釈.百数十件(住所録としてはこの程度で充分)あまりのデータを登録したとしたら出来るであろうファイルを想定し,これを空白データが登録された形でBASICで作成した.できあがったファイルを元の数件のデータを登録したファイルと置き換えたうえ,評価用ソフトを起動した.データを表示させてみると,カードをめくれど空白ばかり,当り前であるがこうして空白データが表示される事に意味がある.次に最終のカードへ一気に飛び,データ修正操作により,氏名,住所,電話番号を入力する.なんのお叱りもなく,私の住所データが百数十件目のカードに登録された.あとは,最初のカードから修正操作により次々と住所を登録していけばよい.こうして,私の住所録はできあがった.
なにをコチョコチョやってまんねん,そんなもの誰かからディスクコピーしてきたらいいやんか,と今お思いのあなた.闇コピーばかりしていたら法律で罰せられますよ.かくいうこのプロテクト外しも似たようなものでお勧めできるものではありませんが.(正式にはプロテクト外しではなく,ソフトを騙して使用している事になる.)