SFX アーカイブは使用しないでください。
多くの場合、リソースをどのように使用するかによって異なります。ファイル名を必要とするライブラリ コードが多数ある場合は、ファイルをハード ドライブにしばらく保存する必要があります。可能であれば、サウンド ライブラリとメディア ライブラリにポインターを渡すことができるかどうかを調べたいと思います。次に、ファイルを自分でロードし、それらを復号化し、復号化されたバッファーへのポインターをメディア API に渡します。
実際の暗号化について。zlibなどのアーカイブ ファイル形式を使用します。これにより、すべてのデータ ファイルを 1 つの暗号化されたアーカイブに保存し、それらをメモリに展開することができます。
または、独自のファイルごとの暗号化を展開します。ロール アット ホーム XOR 暗号化には、非常に高速であるという利点があります。
ほとんどすべてのファイル暗号化は、次のようになります。
- まずは「鍵」から。短い文字列。
- キーを使用して、乱数ジェネレーターを初期化します。
- rng からのバイトと、暗号化するデータを XOR して暗号化します。
- 後で、データを復号化するには:
- 同じキーで開始し、rng を初期化します
- 同じバイトストリームを生成します。
- それらを暗号化されたデータと XOR して復号化します。
問題は、(明らかに) キーがクライアントに存在する必要があるため、決定的なハッカーがキーを取得できることです。したがって、ここで派手すぎても意味がありません。256 バイトの「ランダム」データを生成し、それを使用して、ファイルをメモリにロードするときにファイルを暗号化および復号化するか、一時フォルダーに書き込みます。
Ttemp ファイルを書き出す必要がある場合は、FILE_FLAG_DELETE_ON_CLOSEを使用して、暗号化されていないリソースをディスクに永続化させずに一時フォルダーを安全にクリーンアップできる場合があります。