一部のルートキットは、プロセスオブジェクトを破棄して自分自身を隠そうとしていると聞きました(nt!_EPROCESS
?)しかし、スレッドを存続させます(nt!_ETHREAD
?)。そうすれば、プロセスを表示するタスクマネージャーやProcessExplorerなどのツールには表示されません。
スレッドの全体的な優先度は、次の2つの部分から計算されることを知っています。
dwCreationFlags
を介して定義されます Priorityさて、優先度情報を含むプロセスオブジェクトがルートキットによって破壊された場合、その隠されたルートキットスレッドの合計優先度を計算しようとすると、Windowsカーネルは失敗しませんか?
AFAIK、プロセスのすべてのスレッドは同じコードとデータセグメントを共有します。 programはいつでも、そのThreadIdとProcessIdを要求できます。そして、プロセスは、すべてのスレッドが終了したときにのみ実際に終了します。
しかし、マルウェアはその活動をrundll32
プロセスの背後に隠すことができます。これは、たとえば、サービスが実行可能ファイルではなくDLL)を介してのみ実装される場合に使用される単なるシステムプロセスです。このようなプロセスは、タスクマネージャのリストによくあるため、推測するのは困難です。悪意のある活動が背後に隠されている場所。