△アプローチ例メッセージトラップ型CDチェック解除例CDドライブからCDを取り出す等、警告メッセージを表示させるようにしてから「OllyDbg」でゲームを起動。メッセージボックス或いはダイアログで警告メッセージが表示されたところで、「OllyDbg」でゲームの制御を奪います(Pause:F12)。制御を奪った時点で、逆アセンブルコードリスト上におけるメッセージボックス或いはダイアログ表示処理直後のユーザー入力待ち箇所のコードで停止する筈ですので、その周辺のコードを観察します。システムDLL内のコードで停止した場合は、メニューの「解析」→「ユーザーコードまで実行」でゲーム側に一旦制御を戻してメインモジュールのコードで停止させます。通常のCDチェック解除同様に、CreateFileA関数やFindFirstFileA関数などのCALL後の条件ジャンプ書き換えや、GetDriveTypeA関数の戻り値確認部分を見つけて05から03に変更します。「OllyDbg」のコード変更後の実行ファイル保存機能を使って、オリジナルとは別名の新しい実行ファイルとして保存します。一般的なタイプのCDチェックならば、上記所要時間は30秒台前半程度となります。ちなみにBlueAshさんは上記工程を20秒台後半で完了させます。事前の解析無しの、ゲーム初回起動時での所要時間です。この手法は極めて簡易な上、従来のメッセージボックスセオリーでは対処できない、ダイアログを用いた警告表示やメッセージ参照アドレスを経由させるタイプ等のCDチェックでも問題なく対処できます。そのため、現在ではこのメッセージトラップ型CDチェック解除が主流となりつつありますが、PCゲーム解析初心者の方はこの様なテクニカルな手法を実践する前に、CDチェック解除のチュートリアルで基本を勉強されることを強くお奨めします。ダイアログのスキップ他)。このようなデバッガを用いてゲームの処理中任意のタイミングで制御を奪い、逆アセンブルコードリスト上で同処理箇所を特定する解析手法は、BlueAshさんが「ExGAME」のVol6で高速化改造を例に詳しく解説されていますので、ご覧になることを強くお奨めします。注:「OllyDbg」の操作に関しては、当サイトの「OllyDbg」Q&Aをご覧下さい。「終末の過ごし方」(アボガドパワーズ)では、ゲーム起動時にBGMモードの選択を強制されます。そこで、その選択ダイアログをスキップします。「OllyDbg」からゲームを起動させ、上記選択ダイアログが表示された時点で、「OllyDbg」上でF12キーを押してゲームの制御を奪います。その時点で表示される逆アセンブルコードリストは下記(「OllyDbg」で表示されるものとは異なります)。0010以上により、PCM選択でダイアログボックス表示をスキップする場合は下記のようになります。00406B78=8B1514BF4200-EB3B40484048(「4048」はパディング)このダイアログボックスのダイアログプロシージャは下記。基本的にダイアログ関連の解析では、ダイアログプロシージャにも目を通して必要があれば改造しておくと有用です。ダイアログプロシージャの解析に当たってはリソースエディタの併用をお奨めします。No1」のソースコード参照が有用と思われます。0010この解説があなたのお役に立てば幸いです。