• ベストアンサー

CD上は動くがHDDに保存すると使用不可にする方法

お世話になります。 CDの中にソフトウェアがあり、 「CD上で実行ファイルをクリックするとソフトウェアが起動する」 が 「CDの内容を、パソコンにコピーして、実行ファイルをクリックすると ソフトウェアが起動しない」 ような形をよく見るのですが、これを実現するためには、 ソフトウェアのプログラミングで指定しなければいけないのでしょうか? それとも、CDの書き込み時の形式(ディスクアットワンス的な)で 指定できるものなのでしょうか? お手数ですが宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ariseru
  • ベストアンサー率56% (928/1657)
回答No.1

プログラム側でCDやDVD上の場合だけ起動可能という形に制限するしかないと思います。 CDの書き込み時の形式というのは、追記可能か不可能か程度の制限しかなかったはずなので、ソフトの起動制限をかけるのは無理ですから。 ただ、CDやDVD上からの起動しか出来ないようにしてもソフトのコピーは防げないんですよね。 HDD上にコピーしないでCD-RやDVD-Rにコピーしちゃえば起動出来ますから。 本気でコピー防止を考えるならAlpha-ROMなどのプロテクト技術の導入が必要でしょうね。

その他の回答 (2)

回答No.3

CDを作る時に特別なデータをCDに書き込んでおきます。このデータは通常利用されるものではなく、ライティングソフト等のコピー機能を使ってもコピーされないものです。(データはCD-ROMをプレスする時には記録できるが、CD-Rには記録することができない性格のものですから、CD-Rに焼いても同じものが作れません。) アプリケーションを起動する際にはCDを読みに行き、このデータがあることを確かめることでそういうことを実現しています。

回答No.2

アプリ内でチェックします。 具体的には、 ・起動したアプリ自身の場所をフルパスで取得 ・その場所のドライブの「ドライブ種別」を取得する ・取得した「ドライブ種別」が「CD-ROM」かどうかチェックする と言う方法を取ります。 しかし、この方法は「簡単に破られる」ので、余り意味はありません。 これだけでは、CDの中身をHDDにコピー後、コピーした内容を「仮想CD」にしてしまえば、表面上は「CDで動いている」ので、HDD上で動いてしまうのです。 その為「CDの中に実際には使用しないが、コピーを行うと読み取りエラーが起きるファイルを仕込んでおき、アプリ側でそのフィアルを読み込んでみて、エラーが起きればCDだと認識し、ファイルが存在しなかったり読めてしまった場合はエラーにする」と言う小細工が必要です。 ある種のCDのプロテクトには「アプリケーション側で、特定の順番で、CDの特定の位置を読み込まないと、正常に読めない」と言うモノもあります(コピーしようとして先頭から順に読んでしまうとエラーになるような細工がしてある)

関連するQ&A