既存のプログラム (プレーンな C コンソール アプリ) に暗号化機能を追加しています。入力パラメーターとして必要なファイルはほとんどなく、私の仕事はこのファイル (機密データ) を保護することです。
私が今やっていることは、最初にファイルを暗号化し(外部アプリケーションとの単純なXOR)、次にプログラム内でそれらを解読し、既存のプログラムがファイルを処理することです。次に、すべてが成功したら、それらのファイルを暗号化して戻します (すべてがハードディスクにローカルに保存されます)。
ただし、すべての「開いている」ファイルはハードディスクに保存されるため、セキュリティには穴があります。プログラムが途中で失敗した場合、それらのファイルは復号化されません。
私の問題は、既存のプログラムがFILE
変数を入力として取り、それらのファイルを直接操作していることです。これは私のプログラムではないので、変更する権利はありません。
必要なのは、ファイルをハードディスクではなくメモリに書き込むことです。これを可能にするライブラリが Linux にいくつかあることは知っていますが、私はこれを win で開発しています。