Windows system >> Windowsの知識 >  >> Windows XPシステムチュートリアル >> XPシステムの基本 >> Svchost.exeプロセス関数と関連する知識が明らかになっています

Svchost.exeプロセス関数と関連する知識が明らかになっています

  
Svchostプロセスの概要 Svchostの複数のインスタンスを同時に実行できます。各Svchostセッションには、Svchostの起動方法と場所によって異なるサービスを実行するための一連のサービスを含めることができます。これにより、より優れた制御と簡単なデバッグが可能になります。

Svchostグループはレジストリ[HKEY_LOCAL_MacHINE \\ Software \\ Microsoft \\ Windows NT \\ CurrentVersion \\ Svchost]によって識別されます。このレジストリキーの下の各値は別々のSvchostグループを表し、アクティブプロセスを表示すると別々のインスタンスとして表示されます。ここでのキー値はREG_MULTI_SZタイプのすべての値であり、Svchostグループで実行されているサービスの名前が含まれています(図1を参照)。
図1レジストリ内のSvchost

実際、Svchostはサービスのホストにすぎず、機能を実装していません。 Svchostを使用してDLLによって実装されたサービスを起動する必要がある場合は、DLLのベクタローダがSvchostをポイントし、サービスの起動時にSvchostは起動の目的を達成するためにサービスのDLLを呼び出します。サービスDLLファイルを開始するためのSvchostの使用は、レジストリ内のパラメータによって決定され、サービスを開始する必要があるレジストリキーの下に "Parameters"サブキーがあります。ここで、 "ServiceDll"キー値はどのサービスを示します。 DLLファイルが担当しており、このDLLファイルはサービスタスクの処理をサポートするためにServiceMain()関数をエクスポートする必要があります。

ヒント:Windowsシステムのバージョンが異なると、Svchostプロセスの数も異なります。一般に、Windows 2000には2つのSvchostプロセスがあり、Windows XPには4つ以上のSvchostプロセスがあります。


Svchostプロセスインスタンス
Svchostで実行中のサービスの一覧を表示するには、「Windows XP Command Prompt」と入力します。 Tasklist /svcコマンドの後にEnterキーを押します(Windows 2000を使用している場合は、サポートツールが提供するTlistツールを使用して「Tlist -s」としてコマンドを表示できます)。 Tasklistコマンドはアクティブなプロセスの一覧を表示し、/svcコマンドスイッチは各プロセスでアクティブなサービスの一覧を指定します。図からわかるように、Svchostプロセスは、RpCSS(Remote Procedure Call)、Dhcp(DHCP ClIEnt)、Netman(Network Connections)サービスなどの多くのシステムサービスを開始します(図2)。
図2 Svchostサービスの一覧

ここでは、Svchostプロセスとサービスの関係についてさらに学ぶために、RpcSsサービスを例として取り上げます。 Regeditを実行し、レジストリエディタを開き、[HKEY_LOCAL_MacHINE \\ SYSTEM \\ CurrentControlSet \\ Services \\ RpcSs]ブランチを展開して、[パラメータ]サブキーに "ServiceDll"という名前のキーを割り当てます。 \\ rpcss.dll "#:。つまり、システムがRpcSsサービスを開始すると、 "%SystemRoot%\\ system32"ディレクトリにあるRpCSS.dllダイナミックリンクライブラリファイルを呼び出します。

次に、コントロールパネルから[管理ツール]→[サービス]の順にダブルクリックして、サービスコンソールを開きます。右側のウィンドウの[Remote Procedure Call(RPC)]サービス項目をダブルクリックして[プロパティ]ダイアログボックスを開くと、RpcSsサービスの実行可能ファイルへのパスが "C:\\ Windows \\ system32 \\ svchost -k rpcss"になっています。これは、RpcSサービスがSvchostによって開始されることを意味します。 "-k rpcss"は、このサービスがSvchostのRpCSSサービスグル​​ープに含まれることを意味します。

Svchostプロセスのトロイの木馬分析
以前の紹介から、レジストリ[HKEY_LOCAL_MacHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ Current-Version \\ Svchost]に、Svchostスタートアップグループが保存されていましたそして、グループ内のさまざまなサービス、多くのトロイの木馬およびウイルスがこれを使って自動ロードを実現します。通常の方法は次のとおりです。



・新しいグループを追加し、そのグループにサービス名を追加します。

・今すぐ一部のグループでは、サービス名を追加したり、既存のグループを使用して未インストールのサービスをインストールしたりします。

・既存のグループ内のサービスを変更し、そのServiceDllを独自のDLLファイルに設定します。

たとえば、PortLess BackDoorは、Svchostプロセスを使用して読み込む典型的なバックドアツールです。それでは、どのようにしてPortLess BackDoorのようなトロイの木馬やウイルスを検出し、削除するのですか? Windows XPを例にとると、まず "process spy"などのプロセスツールを使用してSvchostプロセス内のモジュール情報を表示すると(図3を参照)、Svchostプロセスには疑わしいDLLファイルがあることがわかります。 "SvchostDLL.dll"。同時に、「管理ツール→サービス」リストに新しいサービス「イントラネットサービス」(表示名)が表示されます。サービス名は、Svchostによって開始された「Iprip」です。「-k netsvcs」は、このサービスがNetsvcsに含まれることを示します。サービスグル​​ープ内
図3 Svchostプロセスのモジュール情報

ヒント:Windows 2000の場合、システムのIpripサービスはRouting Information Protocol version 1を使用して待機します。 RIPv1)のルータから送信された経路更新情報は、サービスリストに "RIP Listener"として表示されます。

Regeditを実行してレジストリエディタを開き、[HKEY_LOCAL_MacHINE \\ SYSTEM \\ CurrentControlSet \\ Services \\ IPRIP]ブランチを展開して、その "Parameters"サブキーを表示します。 "ServiceDll"キー値は、呼び出されたDLLファイルのパスを指します。フルネーム、これはバックドアDLLファイルです。これを知って、あなたはそれをきれいにすることができますそれをきれいにすることができますサービスのリストの中の "イントラネットサービス"サービスを右クリックしてメニューから "停止"を選び、そして上のレジストリブランチの "Iprip"アイテムを削除する。コンピュータを再起動し、 "ServiceDll"キー値プロンプトの場所に従ってバックドアメインファイルを削除します。最後に、レジストリが変更される前に、エラーが発生したときに復元できるようにバックアップを作成する必要があることを読者に注意する必要があります。

Copyright © Windowsの知識 All Rights Reserved