2010-12-29 4 views
2

私は防衛システム、ウイルス対策マルウェア対策プログラムなどのプログラムを書いています。そして、私は巨人マネージャーを殺すことからプロセスを守るという問題を抱えています。私はいくつかのアンチウィルスをテストし、彼は私のプロセスを殺すことはできません。私はサービスでそれらを止めることができます。どのように私は自分のプログラマーのためのこの防衛を作成することができますありがとう!ウイルス対策のようなプロセス自己防衛

答えて

0

あなたが見ていることは、サービスアプリケーションでは一般的です。つまり、サービスを受ける必要があります。

ウイルス対策ソフトウェアは、通常、ユーザーモードプロセスが利用可能かどうかをチェックする追加の機能を持ついくつかのカーネルモードドライバ(ネットワークフィルタ、ファイルシステムフィルタなど)を使用します。サービスの実行状態)。

また、サービスはUIプロセスのプレゼンスを監視し、再起動することができます。また、UIプロセスはサービスの状態を確認できます。両方のプロセスを並行して停止させるのは非常に手間がかかりますが(可能ですが)、このスキームも機能します。

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

しかし、一般的に、ルートキットはこれらのすべての仕掛けをバイパスし、ルートキットは最新のコンピュータにとって最も重大な脅威を持つものです。

+0

私はserviseを作成しますが、タスクマネージャー - >プロセス - >終了プロセスを通して簡単にプロセスを強制終了します。多分私はレジストリ内のどのフラグをkillからプロセス保護を行うために設定しなければならないのかを知っていて、誰かがメッセージアクセスを拒否しようとすると – lebron2323

2

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

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

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