ZX Spectrum 48kなど、1980年代初頭のマイクロコンピューターのカセットからロードされたゲームやその他のプログラムに対して、コピー防止機能がどのように実装されたか興味があります。私が正しく思い出せば、一部のゲームはテープからテープへの直接コピーに勝ることさえできました。これはどのようにして達成されましたか。また、この手法または一連の手法は、現代のITセキュリティに適用できますか?
私は主にZXスペクトルに関心がありますが、この質問の範囲には、テープからプログラムをロードした1980年代初頭の他のマイクロコンピューターも含まれます。
私が正しく思い出せば、一部のゲームはテープからテープへの直接コピーに勝ることさえできました。
テープのオーディオトラックには必要なすべての情報が含まれていたため、これは原則的に不可能でした。実際には、標準のSpectrumデータファイルよりも高い頻度でエンコードされたデータファイルを操作するカスタムローダーを使用することにより、低品質consumer-gradeテープからテープへのコピー敗北する-この形式をノイズに敏感にすることで、騒々しいコピー機が動作しにくくなります。
ウィキペディアは このページには、カスタムロードスキーマに関する驚くほど大量の詳細が記載されています を指摘しています。
インメモリデータはデジタルなので、「コピー」は完全であるか、実際にはまったくコピーされないため、現代のITへのアプリケーションは思いつきにくいようです。すべての物理「デジタル」メディアにとって、必ずしもそれほど単純ではない方法についてのコメントを参照してください。
当時、テープは磁気フィルム上のバイナリデータにすぎず、「隠された」チャネルや帯域外機能はありませんでした。テープからテープへの録音を不可能にすることを主張した製造業者は、海賊行為を阻止するために、しばしばテープを違った見た目にしました。通常は、通常のテープレコーダーモジュールを使用してそれらを読み取るため、「特別な」テープを作成することはできませんでした。
通常の方法は、複数のページを備えた小冊子(たとえば、取扱説明書)を発送し、ユーザーに特定のページの特定の行から特定の単語を入力するように依頼することでした。コードカードも使用され、暗い紙にエンボス加工された黒いテキストを使用して、簡単にコピーできないようにしました。
誰でもテープをコピーできましたが、そのときは小冊子をコピーするのはより困難でした。誰もスキャナーを持っていなかったし、地元の図書館で複数ページの小冊子をコピーする努力をする人はほとんどいなかった。彼らが小冊子をコピーしようとしたとしても、それらがきれいにコピーされるのを防ぐために、キーワードはしばしばテキストで暗くされます。
一部の 初期のビデオゲーム には、商品、コードホイール、CDケースのテキスト(例:Metal Gear SolidのMerylのコーデック番号)、またはゲームのプレイに必要なその他の物理的な商品(例:特定のパズルを解くため)が含まれていました。 、そしてこれらはかなり効果的な抑止力でした。他のゲームは、オリジナルのコピーをコピーよりも価値のあるものにするために単にポスターとアクションフィギュアを出荷しました。
(少し話題から外れた)副次的注意として、VHSテープdidには、通常のプレーヤーではコピーできなかったデータを含めることができます。基本的に、VHSプレーヤーは、テープからのデジタル信号をデジタルアナログコンバーター(DAC)に送り込み、適切な同期信号と共にその信号をモニターに送信します。このアナログ信号は色のセットとして解釈されますが、プレーヤーにコマンドを送信するためにいくつかの微妙なピークも使用されました(たとえば、空白の画面、垂直同期のリセットなど)。
Macrovision(コピー防止メカニズム)は、プレーヤーの保護回路が補償するように、高電圧をテープにエンコードしました。元のテープでは、値はグリッチとして解釈され、プレーヤーによって無視されます。コピーでは、レコーダーは信号レベルを残りのビデオの信号レベルに下げます。信号のその部分が通常のレベルに減少すると、プレーヤーはそれをブランキング信号として解釈し、ビデオを完全にブランク(通常は青)にします。他のメカニズムは同じトリックに依存していましたが、代わりにビデオを色相シフトさせる、またはほとんどのプレーヤーの追跡メカニズムを誤動作させる信号を使用していました。
それらの古き良き時代。若いとき、私はいくつかのスペクトラムゲームをコピーし、コピー防止スキームを回避する必要がありました。
テープからテープへのコピーは他の回答で説明されています。最良の結果を得るためにデジタルコピーに興味を持っていました。
標準形式のテープ上のデータは、本質的には単なる一連のバイトでした。いくつかの標準ステートメント(LOAD、SAVE)を使用して、そのデータをメモリにロードし、テープを切り替えて、別のテープに書き戻すことができます。
コピーしたゲームはディスクからロードされますが、驚いたことに機能しませんでした。
いくつかの実験を行った後、メインのゲームデータの後に、コピーする必要のある3つの追加データブロックがテープ上にあることを発見しました。少し複雑ですが、実行可能です。
それでも、成功しません。
さらに実験を重ねた後、小さな余分なデータブロックの最初の1つが特別なSpectrumメモリの場所にロードされていることを発見しました(FRAMES)
(割り込み駆動型)でしたが、ROMによって1秒間に50回インクリメントされました。最後の小さなブロックが読み込まれた後、(FRAMES)
値がコードによって検証され、特定の範囲内にあるかどうかが確認されました。テープ上の小さなデータブロックが正確な距離になかった場合、ゲームはロードを拒否します。
各ブロックを個別に手動でコピーする場合、これを正しく行うのは非常に困難でした。
予想通り、数年後、これらのデータブロックをコピーしてブロックの距離を記憶するのに役立つコピーヘルパープログラムが見つかりました。
ゲームビルダーがこれに対して使用する別のトリックは、ゲームを非常に大きくして、メモリのほぼすべてのバイトを埋めることでした。そうすれば、コピーヘルパープログラムの余地がなくなります。
テープからロードされたデータブロックの保存にビデオメモリを使用する新しいコピーヘルパープログラムが出現したことを回避するために。画面は混乱しますが、ゲームがコピーされました。
他にも(テープ関連ではない)コピー防止のタイプがありました。 Lenslokコピー防止機能を備えた特にACEと呼ばれるゲームを覚えています: https://en.wikipedia.org/wiki/ Lenslok
ウィキペディアから:「Lenslokデバイスは基本的に、プラスチック製のホルダーに縦に並べられたプリズムの列でした。ゲームが始まる前に、2文字のコードが画面に表示されましたが、その後、再配置された縦のバンドに分割されて破損しました。画面に表示されます。Lenslokを介してこれらのバンドを見ると、正しい順序に復元され、コードを読み取って入力できるため、ゲームにアクセスできます。デバイスを平らに折りたたむと、標準ケースのオーディオカセットの横に収まるほど小さくなりました。 」
私が覚えているように、使用するのは非常に退屈で、プログラムを何度もリロードしなければならず、コードを間違えることがよくありました。
プロマスタリングマシンが使用しなかったのは、ホームデッキのテープデッキと「平均化」ボリュームレベラーによるものでした。 「ポールヒューズフリーロード」をグーグルすると、それについて学ぶことができます。彼は海のc64ローダーを書いた。一部のローダーには、自己変更コードもありました。テープと8ビット用の組み込みROMルーチンは本当に遅いです。悲しいことに、8ビットatariは恐ろしいものでした。c64テープデッキのカーネルローダーもかなり貧弱でした。南京錠カードやlenslokのようないくつかのトリックもあり、そのようなこともたくさん止めました。