ウイルス対策アプリケーションに隔離機能を追加する効率的な方法を考えていました。
- ファイルを指定したディレクトリにコピーし、その拡張子をなし (
*.
) に変更します。 - ファイルのバイナリ コードを XML データベースに保存します。
どちらの方法が良いですか?
ただし、ユーザーがファイルを復元したい場合、バイナリコードを再コンパイルする方法がわかりません。
これを行う方法は、暗号化エンジンを使用してバイナリ ファイルを暗号化し、隔離フォルダーに移動することです。ランダムなパスワードを作成し、そのパスワードでファイルを暗号化し、どこかに保存できます (そのパスワードは、マスターで暗号化することもできます)。鍵)。それがおそらく最も簡単な検疫方法です。隔離を解除するには、隔離コードとは正反対のコードを記述します。ファイルをリストに列挙してフィルターで除外します。次に、ユーザーがアイテムをクリックして隔離解除を押すと、ファイルパスを変数として隔離解除関数が呼び出されます。
もし私がこれをしなければならないなら (私のコメントによると、そもそもこのような状況にはなりたくありません)、暗号化と大規模な形式のバイナリ データをネイティブにサポートするインプロセス データベース エンジンを使用します。 . 私は sql コンパクトまたは sqlite の両方がこれに適合すると思います。
xml はプレーンテキストであり、バイナリ データを簡単に抽出できるため、使用しません。また、拡張子を変更するだけではなく、ファイルを簡単に実行できるためです。どちらも検疫ではありません。
名前の変更オプションは、これまで説明してきた中でおそらく最も「効率的」ですが、セキュリティ ソフトウェアを扱う場合は、常に効率よりも正確性を第一に考慮する必要があります。パフォーマンスの正確さを犠牲にすることもできますが (3D ゲーム レンダリング ソフトウェアは常にこれを行っており、大きな効果があります)、セキュリティ ソフトウェアはこの範疇にはありません。
あなたができることは、後で最適化することです。たとえば、ウイルス対策エンジンは、ヒューリスティック (ほとんどの場合にのみ適用される経験則) を使用してソフトウェアを高速化します。これは、誤検知を優先する方法で行われます。脅威。これが機能するのは、各項目をより綿密にチェックするコードが最初に作成され、実際にテストされているからです。