2

私は防御システム、ウイルス対策アンチマルウェアなどのプログラムを作成しています。また、テイストマネージャーからプロセスを強制終了することでプロセスを防御することに問題があります。私はいくつかのアンチウイルスをテストしましたが、彼のプロセスを強制終了することはできません。私はサービスでそれらを止めることができるだけです。プログラムのためにこの防御を作成するにはどうすればよいですか。ありがとう!

4

2 に答える 2

2

プロセスの停止は、TerminateProcess(Win32 API)を呼び出すことで実行されます。デフォルトでは、TerminateProcessの呼び出しを発行したプロセスの1つとは異なるセキュリティコンテキストで実行されているプロセスを強制終了することはできません。

サービスを実行しているユーザーモードは、誰かがサービスを強制終了した場合に再起動されるように(サービスコントロールマネージャーを使用して)構成できます。ただし、サービスコントロールマネージャーインターフェイスから、または「net stop」コマンドを使用してサービスを停止したくない場合は、サービスの作成時にSERVICE_STATUS構造の「dwControlsAccepted」フィールドを適切に設定できます。

また、以前にデバッグ権限を有効にすることで、サービスまたはシステムプロセスであっても、任意のプロセスを終了できることを考慮してください。この特権は管理者に割り当てられ、アクセストークンで無効になっています。タスクマネージャーはデバッグ特権を使用しませんが、KILLユーティリティ(Windowsリソースキットに付属)は使用します。

于 2010-12-29T14:38:06.420 に答える
0

観察することは、サービスアプリケーションでは一般的です。つまり、このためのサービスが必要です。

ウイルス対策ソフトウェアは通常、いくつかのカーネルモードドライバー(ネットワークフィルター、ファイルシステムフィルターなど)を使用します。これらのドライバーには、ユーザーモードプロセスが使用可能かどうかを確認する追加機能があり、使用できない場合は再起動します(これらは、サービス)。

また、サービスはUIプロセスの存在を監視し、再起動することもできます。また、UIプロセスはサービスの状態をチェックできます。両方のプロセスを並行して停止することは(可能ですが)非常に難しいため、このスキームも機能します。

私はあなたが同じアーキテクチャに来ると思います。

しかし、一般的に、ルートキットはこれらすべてのトリックをバイパスし、ルートキットは現代のコンピューターにとって最も重大な脅威を持っているものです。

于 2010-12-29T14:13:21.847 に答える