ASTUCE JUIN 2005

 

Identifier les services associés au processus SVCHOST.

 

Catégorie Système
Os Win XP Pro, Win 2000, Win 2003, Win XP Home
Description Beaucoup de services identifiés comme étant critiques sont lancés par SVCHOST, voici un petit moyen de voir les associations entre ces services et les différentes instances du processus SVCHOST.

 

 

 

 

Qu'est-ce que Svchost.exe ?

C'est un nom de processus hôte générique pour les services exécutés à partir de DLL. Vous n'avez pas compris ? :-) En français, ça donne ceci :
 

Explication simple

C'est un processus Windows, au même titre que les autres processus visibles dans le gestionnaire de tâches tels que "explorer.exe", "services.exe" ou "winlogon.exe" mais avec la particularité d'être générique, en effet, il fonctionne en tant qu'hôte pour tous les services exécutés à partir de DLL. Son nom est d'ailleurs assez parlant : svchost que l'on pourrait couper en deux, svc pour services et host pour hôte.
 

Explication détaillée

Le fichier svchost.exe se trouve dans le répertoire %SystemRoot%\System32. A chaque démarrage de Windows, le processus svchost.exe analyse la section "services" de la base de registre afin d'y construire une liste des services à charger. Plusieurs instances de svchost.exe peuvent être démarrées et ainsi cohabiter ensemble, chacune de ces instances peut contenir un service unique ou un groupe de services.

Si vous êtes curieux, vous pouvez consulter ces groupes de services via la base de registre (regedit) dans la branche :

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Chaque valeur de la clé Svchost représente un groupe de services et par conséquent une instance de svchost.exe, ces groupes apparaissent sous la forme d'instances distinctes lorsque vous affichez les processus actifs, voir la capture d'écran ci-dessous :
 

 

Comme vous le constatez, ces instances ne donnent pas le détail précis sur les services en cours d'exécution, c'est plutôt frustrant. Heureusement qu'il y a un moyen simple de lister l'ensemble des services exécutés sous le processus svchost.exe, nous allons voir ça un peu plus loin.


Pour identifier les DLL utilisées par ces services, puisque ce sont des services exécutés à partir de DLL dont il s'agit, il suffit d'aller dans la branche :
 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\[nom du service en question]\Parameters

 

Dans l'exemple ci-dessus, pour le service "Nla" vous verrez la DLL utilisée dans la valeur ServiceDll, en l'occurrence ici il s'agit de la DLL mswsock.dll.

Voilà en gros ce qu'il y a à savoir sur svchost.exe. 

 

Voici comment faire pour lister les services en cours d'exécution sous svchost :


Cliquer sur "Démarrer", "Exécuter..." puis taper "cmd" et cliquer sur "OK"

pour accéder à l'Invite de commandes. Entrer la commande suivante :

 

Ici nous avons 3 colonnes :


Comme vous le voyez, plusieurs services exécutés sont répertoriés par chaque instance de svchost.exe. Si vous souhaitez avoir l'explication exacte de chacun des services il vous suffit d'aller dans le gestionnaire de services en tapant la commande "services.msc" à partir du menu Démarrer > Exécuter... et de cliquer sur chaque service un par un pour avoir le descriptif de celui-ci.
 


 



Voilà, vous êtes maintenant en mesure d'identifier les groupes de services exécutés par le processus svchost.exe ainsi que les DLL auxquels ils font appel pour s'exécuter. Si vous avez le moindre soupçon d'une présence anormale d'une instance svchost.exe, il vous est facile de remonter jusqu'à la DLL pour lever le doute!