Prima di entrare nel vivo di questo articolo, cerchiamo di capire cos'è, a cosa serve e perché è nato il famigerato svchost.exe.
Pensiamo innanzitutto alle esigenze di un elaboratore di testi (quali il semplice notepad) ed un qualsiasi altro programma, come ad esempio un foglio di calcolo.
Sebbene i due programmi svolgano compiti ben diversi, vi saranno sicuramente punti in comune: la finestra di apertura e salvataggio dei documenti, ad esempio, sarà grossomodo la stessa. Per poter funzionare quindi, i programmatori dovrebbero dotare i due applicativi di porzioni di codice pressoché identiche: il risultato è un inutile lavoro duplicato, replicato per di più in qualsiasi altra applicazione chiamata a proporre funzionalità simili.
Gli ingegneri del software hanno pensato quindi ad un sistema di librerie condivise, concetto recepito da Microsoft con le famose librerie a collegamento dinamico (DLL): si tratta di file separati dagli eseguibili che offrono pacchetti di funzioni già pronte. Tali librerie che possono essere appunto "condivise" da tutti i programmi che ne avessero bisogno, senza costringere i programmatori a reinventare la ruota ogni volta.
Sebbene questo approccio porti ad un'innumerevole serie di vantaggi più o meno evidenti, comporta anche alcuni svantaggi. Fra questi, gioca un ruolo importante l'impossibilità di eseguire tali funzioni come servizio di sistema: come ovviare quindi?
Svchost.exe è la risposta: un eseguibile "contenitore" che si occupa appunto di lanciare funzioni presenti nelle librerie dinamiche come se si trattasse di servizi veri e propri.
Sorge però spontanea un'altra domanda: perché vi sono così tante istanze di svchost.exe nel Task Manager?
Ipotizziamo che tutti i servizi vengano caricati su una sola istanza. Se uno, per qualche motivo, dovesse crashare, l'intera istanza crasherebbe, e di conseguenza tutti i servizi correlati.
Quindi, i servizi sono organizzati in gruppi logici, e ogni gruppo ha una sua istanza di svchost.exe. Ci sarà il gruppo logico del firewall di Windows, quello che gestisce l'interfaccia utente, e così via... In questo modo, al crashare di un servizio, il peggio che può succedere è il crash dell'intera istanza, ma non di tutti i servizi caricati.
Dopo quello che abbiamo detto finora, non dovrebbe essere difficile la risposta a questa domanda.
Svchost.exe è un processo che, come abbiamo visto, viene semplicemente usato per caricare dei file dll nel sistema. Non vi è una distinzione tra file nocivi o meno: ecco che allora svchost.exe può essere sfruttato per caricare in memoria librerie proprie di malware e software indesiderati, mascherando il tutto come una normale istanza di questo processo.
È il caso del worm Conficker (noto anche come Downup) che, come si vede nell'immagine sottostante, crea un servizio che, sfruttando svchost.exe, carica in memoria una libreria infetta. Ciò non significa però che il processo sia stato infettato!
Vi sono poi i file infetti che vengono posti nelle più disparate cartelle del computer con nomi del tutto simili se non uguali al legittimo processo, che sono invece sintomo di malware. Come riconoscere questi falsi dal vero processo? Basta un software che mostri, oltre al nome del file in esecuzione, anche il relativo percorso: il già citato GMER, per esempio, oppure Process Explorer.
Svchost Viewer (Download) è un programma gratuito e standalone che permette di scoprire ogni istanza di svchost.exe quali servizi ha lanciato e mantiene in esecuzione.
È compatibile con Windows XP, Vista e 7, e necessita del .NET FrameWork 2.0 o superiore per funzionare.
Il programma è molto comodo in quanto non necessita di installazione: basta estrarlo dall'archivio e lanciarlo. Ci avviserà che la procedura di acquisizione dei dati potrebbe protrarsi per qualche istante, confermiamo con Ok.
Dopo la fine dell'acquisizione, troveremo una lista di svchost.exe affiancati dal proprio PID (Process ID) nella colonna di sinistra.
Selezionando un'istanza di svchost.exe, avremo informazioni circa il suo utilizzo di memoria, i dati scritti e letti, i thread attivi e i servizi in esecuzione.
Cliccando sul piccolo + affianco ad ognuno, vedremo i nomi dei servizi che ha lanciato e che mantiene in esecuzione.
Cliccando su uno di questi, avremo (nella colonna di destra) informazioni circa il suo stato, la sua modalità di avvio, e la descrizione del servizio.
Adesso che sapete quali servizi sono in esecuzione, potete, seguendo le istruzioni della prossima pagina, disabilitarne l'avvio di alcuni a voi inutili per risparmiare memoria.
Leggendo la descrizione di un servizio, potete capire se è utile alle vostre esigenze, o se invece può essere tranquillamente disabilitato per risparmiare memoria.
Se decidessimo di disabilitare un servizio, apriamo il menu Start e clicchiamo su Esegui. Digitiamo services.msc seguito da Invio.
Individuiamo nella lista il servizio da disabilitare, ed effettuiamovi un clic destro del mouse, selezionando poi la voce Proprietà.
Nel campo Tipo di Avvio, portiamo il valore da Automatico a Disabilitato.
Premiamo Ok e chiudiamo la finestra dei servizi.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati