1

アプリケーションのコンテンツ (リソース) ファイルを保護する単純なレイヤーが必要です。たとえば、アプリケーションで使用するさまざまなサウンド ファイルと画像ファイルがあります。それらを SFX アーカイブ (おそらく WinRAR でパックされている) にラップしてから、アプリケーションで、-silent などのパラメーターを使用して SFX exe を開始できると思います。しかし、これはこれを行うための最良の方法ではない可能性があるため、いくつかの提案をいただければ幸いです。

PS私はそれが破られないように聞こえないことを知っています(とにかくあるように)が、これはいくつかの理由で必要です。

PS SFX(または他のパッケージ)の完全な抽出後にファイルを非表示にする方法について、いくつかのヘルプを使用できます。

ありがとうございました。

4

2 に答える 2

0

SFX アーカイブは使用しないでください。

多くの場合、リソースをどのように使用するかによって異なります。ファイル名を必要とするライブラリ コードが多数ある場合は、ファイルハード ドライブにしばらく保存する必要があります。可能であれば、サウンド ライブラリとメディア ライブラリにポインターを渡すことができるかどうかを調べたいと思います。次に、ファイルを自分でロードし、それらを復号化し、復号化されたバッファーへのポインターをメディア API に渡します。

実際の暗号化について。zlibなどのアーカイブ ファイル形式を使用します。これにより、すべてのデータ ファイルを 1 つの暗号化されたアーカイブに保存し、それらをメモリに展開することができます。

または、独自のファイルごとの暗号化を展開します。ロール アット ホーム XOR 暗号化には、非常に高速であるという利点があります。

ほとんどすべてのファイル暗号化は、次のようになります。

  • まずは「鍵」から。短い文字列。
  • キーを使用して、乱数ジェネレーターを初期化します。
  • rng からのバイトと、暗号化するデータを XOR して暗号化します。
  • 後で、データを復号化するには:
  • 同じキーで開始し、rng を初期化します
  • 同じバイトストリームを生成します。
  • それらを暗号化されたデータと XOR して復号化します。

問題は、(明らかに) キーがクライアントに存在する必要があるため、決定的なハッカーがキーを取得できることです。したがって、ここで派手すぎても意味がありません。256 バイトの「ランダム」データを生成し、それを使用して、ファイルをメモリにロードするときにファイルを暗号化および復号化するか、一時フォルダーに書き込みます。

Ttemp ファイルを書き出す必要がある場合は、FILE_FLAG_DELETE_ON_CLOSEを使用して、暗号化されていないリソースをディスクに永続化させずに一時フォルダーを安全にクリーンアップできる場合があります。

于 2010-05-18T07:21:15.133 に答える
0

リソース ファイルを圧縮し、アーカイブ ファイルの各 32 ビット ブロックを選択したキーで XOR します。実行時に、受信した各 32 ビット ブロックとキーを再度 XOR してから、メモリ内解凍のために zip ライブラリに渡します。

非常に軽い難読化ですが、誰でも zip ファイルを開くことはできません。

于 2010-05-17T22:18:16.690 に答える