このコンテンツでは、キーディスクチェックに関する情報を公開しています。
(いわゆる、ゲームの起動時に表示される「**のCDを入れてください」のやつですね)。
当項目の資料を参考にし、自作ソフトにCDチェック処理を組み込むことも出来ますし、
逆に市販ソフトのCDチェックルーチンを外してしまうことも可能です。

ただし、悪用すると犯罪です(不正競争防止法違反)。
個人使用目的以外に用いた場合、当方は一切の責任を負いかねます。
また、Alpha-Rom・SafeDiscといった複製を禁止するためのプロテクトもしくは
暗号を解読する行為も違法である可能性が高いため扱いませんのでご了承ください。


当項目の資料は「ある程度プログラム改造を理解できている方」を対象としています。
まだまだ理解する自信に欠ける方は改造講座の閲覧をオススメします。

なお、Check No.01以降のアーカイブには、以下のファイルが含まれています。
・自作のキーディスクチェックプログラム
・使用についてのマニュアル
・C++ソースファイル
・逆アセンブルによる解析テキスト
… どのように動作するか、実際に確認することができます。
… 実行方法・キーディスクの作り方などの説明です。
… VisualC++6.0用のソースファイルです
… Disassem Ver0.22を使用した解析テキストです(解除参考用)
キーディスクチェックの構造を学ぶなり、自作ソフトに組み込むなり自由に活用してください。
(まぁ、こんな安っぽいものを組み込む人は居ないと思いますが…(苦笑))
ちなみにソースはVisualC++用ですが、Borlandで配布されているフリーのコンパイラである、
「Borland C++ Compiler 5.5」でも使用可能みたいです。

ちょっとだけ注意書き

バグ報告は歓迎ですが、同封のサンプルプログラムを使用した際に起こった不都合などに関して、
作者は一切の責任を負わないものとします。
万が一のことを考え、バックアップを取っておくことも忘れないようにしましょう。
あと、「プログラムコーディングが下手、C++ソースが汚い」というツッコミも勘弁してください(汗

Check No.00 (1,161Byte)
CD or DISK?
CDチェックキーディスクチェックの違いを簡単にまとめたテキストです。

Check No.01 (16,883Byte)
GetDriveTypeA &
GetVolumeInformation

ドライブ種類取得用の GetDriveTypeA と、ボリュームラベル判定用の
GetVolumeInformation を組み合わせたディスクチェックです。
ほんの十数行のコードで作成できる、ごく単純なものです。

Check No.02 (17,386Byte)
GetDriveTypeA &
FindFirstFile

ドライブ種類取得用の GetDriveTypeA と、ファイル存在判定用の
FindFirstFileを組み合わせたディスクチェックです。
こちらもNo.01と同じく、よく見かけるタイプですね。

Check No.03 (15,881Byte)
CALL &
CHECK

内容は、No.01のボリュームラベル判定式と同じものですが、
ディスクチェック処理のルーチンを別関数にしてあります。
コール処理の除去と周辺のフラグ数値の変更方法を学べます。

Check No.04 (16,841Byte)
GetDriveTypeA &
CreateFileA

ディスクチェックと同時に、キーディスクから必要なファイルを
読み出す場合はこの形式の場合があります。
まぁ、不要でもこのWinAPIを使う場合もありますが…。

Check No.05 (14,789Byte)
GetDriveTypeA &
GetPrivateProfileString

キーディスク内のINIファイルから情報を読み込む形式です。
この類のディスクチェックの場合、分岐処理の書き替え以外の
手法が要求されます。

TOPに戻る