まえがき
本来ならばプログラミングコーナーに書くべきことでしょうが、頓挫する可能性が非常に高いので。
ソースコードを紛失した、過去のVB6プログラムを解読することを目標とします。
無知に不注意と不運が重なって見事に完全白紙になってしまったふにゃのゲームロジックを何とか復元したい…!
VB Decompiler
VB Decompilerというソフトがあります。
VB6で作った実行ファイルから、かなりいい感じにソースコードを復元(逆コンパイル)してくれるという、素晴らしいソフトです。
しかし、個人用途でも$99と、決してお安くはないです。
これからすごいのを作るんだ!と意気込んでいるならお安い買い物でしょうが、少なくとも今の私にはそのような意気込みはありません。
実は、無償版の、VB Decompiler Liteもあります。
言うまでもなく、機能は制限されています。
よりにもよって、逆コンパイル機能が使えなくなっています。
じゃあ何が使えるのか。
逆アセンブル機能です。
ネイティブコードの一歩手前の、Pコードまで復元してくれます。くれやがります。
普通のVBプログラマはPコードなんて見るはずもないし、より専門的な技術者ならPコードにせずとも解析できることでしょう。
最も需要が少なく、ゆえに、最も情報が少ないのです。
コード名で検索してもろくに情報ないです。
使われているコード名が一般的なものなのか、VB Decompiler独自のものなのかさえ、よくわかりません。
だったら、解読のための情報を自分で探り、作るしかないのではないか。
どうやって探ろうか
本物のソースコードと逆アセンブルのコードを比べれば、いろいろわかりそうです。
ちょうどいいことに、わがサイトでは、過去のVB製ソフトを一部ソースコード付きで配布しています。
やっていることがシンプルで分かりやすいMusicPlayer5を題材に使ってみましょう。
まとめてダウンロードでソースコード付きが入手できますよ。
そうそう、Pコードはアセンブリ言語と似ているのでアセンブリ言語を勉強しておくと理解しやすいかもしれない。