ファイルを完全に編集不可かつ削除不可にする方法はありますか? 簡単なウイルス対策プログラムを作成しており、ファイルに保存されているマルウェアの署名を保護したいと考えています。
4 に答える
簡単に言えば、「できない」ということです。長い答えが続きます。=)
ファイルのアクセス許可を介して実装することもできますが、プロセスに十分な権限がある場合は変更できます。
TMK、この種の制限を実装する唯一の方法は、ファイルを排他モードで開いた状態でプロセスを実行し続けることです。ただし、 Unlockerのようなアプリケーションがメイン プロセスを強制終了したり、ブロック ハンドルを削除したりするのを防ぐことはできません。
いいえ、できません。ソフトウェアが十分な権限で実行されている場合、ウイルス対策と一緒にそれらを消去できます. これは、市販のウイルス対策ソフトウェアでも発生します。
少なくとも変更を防ぐためにできることは、定義を圧縮、署名、および暗号化して保存することです。このように、マルウェアが暗号化キーを取得できない限り、ウイルス データベースを意味のある形で変更することはできず、削除することしかできません。どちらの場合でも、ソフトウェアは介入を検出して対応を試みることができます (ただし、マルウェアがシステム ファイルを削除する権限を持っている場合は、すでに手遅れかもしれません)。
C# でできる最善の方法は、ファイルのアクセス許可を設定して、自分のサービスだけがフル アクセスできるようにすることです。他のユーザーはアクセスできないようにします。彼らは常にアクセス許可を変更できるため、管理者アクセスを取得できた誰か/何かから保護することはできません。
ファイルとサービスを自己保護するために多くのアンチウイルスが行っていることは、重要なファイルとプロセスの両方をブロックするカーネル モード ドライバーをインストールすることです。これにより、管理者でさえそれらを停止できなくなります。もちろん、C# では作成できません。