Svchost.exe nedir, ne işe yarar ?
https://vista.enpedi.com/2010/10/svchostexe-nedir-ne-ise-yarar.html
Svchost.exe, Windows'un bilgisayarınızda çeşitli işlevler gerçekleştirmek için kullandığı diğer bağımsız hizmetleri barındıran veya içeren bir işlemdir. Örneğin, Windows Defender svchost.exe işleminin barındırdığı bir hizmet kullanır. Bilgisayarınızda çalışan birden çok svchost.exe olabilir; her biri farklı hizmetler içerir. Bir svchost.exe programın tek bir hizmetini barındırabilir ve başka biri örnek Windows ile ilgili birkaç hizmeti barındırabilir. Her bir svchost.exe altında hangi hizmetlerin çalıştığını görüntülemek için Görev Yöneticisi'ni kullanabilirsiniz.
Yukarıdaki tanımı Microsoft'un sitesinden aldım. Ama herkesin daha kolay anlayabileceği şekilde tekrar anlatayım;
Windows'un içerisinde çeşitli görevleri yerine getiren ama kendi kendine çalışmayan .dll formatında bazı dosyalar vardır ve bunlar çoğunlukla System32 klasöründe bulunur. Bunların ise çoğunluğunu "Hizmetler" oluşturur ve bunları çalıştırılmasından Svchost.exe sorumludur. Kafanızda canlanması açısından olayı örneklendireyim:
Bir çiftlik düşünün. Bu çiftlikte işlerin yürümesi için taktör, Biçerdöver, fireze, çapa makinaları, dıştan takma kepçe, su tankı, el arabası vb.bazı araçların kullanılması gerekir. Dikkat ederseniz bu saydığım araç gereçlerin çoğunun kendi kendine çalışma kabiliyeti yoktur. Fireze, çapa makinası, dıştan takma kepçe ve su tankının çalışmak için traktöre, el arabasının ise insana ihtiyacı vardır. Burada ki kritik noktalardan biri de -olaya çiftlik açısından bakarsanız- saydıklarımın hiçbirinin tek başına hiçbir değeri yoktur ve tamamen işe yarayışsızdırlar. Peki hepsi kendinden çalışabilir yapılamaz mıydı? Tabii ki yapılırdı. Ama bunların kendinden çalışamıyor, çalışmak için traktöre ihtiyaç duyuyor olmalarının getirdiği kritik bir avantaj vardır: Bir çiftçi bir tarktör alır ve bütün işi halleder. Bu çiftçiye nakit, depolama ve kaynak yönünden önemli avantajlar sağlar. Nereye geleceğimi anlamış olmalısınız. Şimdi çiftliğin yerine Windows'u, zirai aletlerin yerine "Hizmetler"i, traktörün yerine Svchost.exe'yi, insanın yerine (El arabası) örneğin Isass.exe'yi koyarsanız olay kafanızda canlanacaktır.(Benzetmede hata olmaz, hatasız benzetme olmaz ) |
Zamanında Ram'in altın değerinde olduğu zamanlarda ki alışkanlıklarından vazgeçemeyen ve sürekli işlemci ve Ram etkinliklerini göz ucuyla izleyen bazı kullanıcılar, Görev Yöneticisi'nde görünen ve zaman zaman bol miktarda Ram ve işlem gücü harcayan bu Svchost.exe'lerin ne olduğunu merak ederler. Hatta bunları silip temizleseler içleri rahatlayacaktır çoğunun ama yukarıda da anlattığım gibi kazın ayağı öyle değildir; Svchost.exe'ler çalıştığı için sistem daha az kaynak harcıyordur. Gelin biraz ayrıntıya girelim;
Hizmetler Windows'un yüklenmesi sırasında ve sonrasında kullanıcının herhangi bir dahli olmadan arka planda çalışan programlardır. Linux'ta ise bunlara Deamons adı verilir. Bunların çoğu kendi kendine çalışabilir (.exe) programlardır fakat bir kısmı kendi kendine çalışamayan .dll dosyalarıdır. Windows üzerinden bir .dll dosyasını kendi başına çalıştırmak ise mümkün değildir. Bu yüzden bu .dll dosyası durumundaki Hizmetler çalışabilmek için .exe formatındaki bir programa ihtiyaç duyarlar. İşte Windows'ta bu .dll dosyalarını çalıştırma görevi Svchost.exe'ye verilmiştir. Başka bir deyişle Svchost.exe, Win32 servislerinin resmi çalıştırıcısıdır.
Bir Svchost.exe'nin hangi Hizmetleri yürüttüğünü öğrenmenin pek çok yolu vardır. Ben bir kaçını burada size anlatacağım. Bunlardan ilki bir 3.parti program olan Process Explorer. Araç Windows Görev Yöneticisi'nin daha gelişmiş hali. Kurulum gerektirmiyor, yani direk çift tıklayarak çalıştırabilir veya herhangi bir yere kaydedip kısayol oluşturarak kullanabilirsiniz. Technet'in bu küçük aracını buradan indirebilirsiniz. Aracı çalıştırdığınızda bilgisayarda o anda çalışan bütün işlemleri görebileceğiniz bir pencere açılıyor;
Merak ettiğiniz bir Svchost.exe'ye tıklayıp açılan pencerede Services sekmesini tıkladığınızda bu Svchost.exe'nin yüklendiği Hizmetler'i ve açıklamalarını görebilirsiniz.
Diğer bir yöntemse Komut İstemcisi'ni kullanmaktır.Başlat Menüsü Arama satırına cmd yazıp Enter'a basarak veya Başlat Menüsü/Tüm Programlar/Donatılar/Komut İstemi yoluyla ulaşabileceğiniz komut istemcisine tasklist /svc /fi "imagename eq svchost.exe yazın ve Enter'a basın. O anda sistemde çalışan bütün Svchost.exe ve bağlantılı oldukları Hizmetler listelenecek;
Son olarak ta bu işlemi Görev Yöneticisi ile yapabilirsiniz; Görev Yöneticisi'ni başlatın ve İşlemler sekmesini seçin. Tüm kullanıcıların işlemlerini göster'i tıklayın. Yönetici parolası veya onay istenirse, parolayı yazın veya onay verin. Bir svchost.exe örneğini sağ tıklatın ve ardından Hizmet(ler)e Git'i tıklatın. İşlemle ilişkili hizmetlerin Hizmetler sekmesinde vurgulandığını göreceksiniz:
Artık bir Svchost.exe'nin aynı anda pek çok Hizmeti çalıştırdığını gözünüzle gördünüz. Ama aklına, "Bunlar neye göre gruplanıyor, Svchost.exe çalışırken neyi ve nasıl çalıştıracağını nasıl biliyor?" sorusu gelenler olacaktır. Tabii içgüdüsüne göre veya rastlantısal olarak değil!
Bütün bunlar yine Kayıt Defteri'nde HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SVCHOST adresinde belirlenmiştir; (Küçük pencereye dikkat edin,oradaki her anahtar için ayrı pencere vardır)
İşte Svchost.exe çalıştığında buradan hangi servisleri çalıştıracağını öğrenir. Sadece bununla da kalmaz bu anahtar Svchost.exe'yi HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services anahtarına yönlendirir. Burada her Hizmetin altında bulunan Parameters anahtarında Svchost.exe'nin ihtiyaç duyacağı .dll'lerin adresleri ve çalışma şekillleri (Otomatik,Elle,Gecikmeli vb.) bulunur;
Tabii hemen aklınıza "eee bir Svchost.exe belli bir himet için çalışınca bütün kendine bağlı hizmetleri boş yere çalıştırıyor mu?" sorusu gelecektir. Hem Evet hem Hayır!
Windows ilk çalıştırıldığında belli bir Svchost.exe kendine bağlı hizmetleri yüklerken hangisinin nasıl çalışacağını (Otomatik,Elle,Gecikmeli, Devre dışı vb.) Kayıt Defterinden öğrenir ve örneğin kendi üzerine 10 Hizmet düşüyorsa buna göre (Atıyorum) 5'ini çalıştırır. Daha sonra diğer 5 çalıştırmadığı hizmetten çalışması gereken olursa Windows bunu yine aynı Svchost.exe'ye yollar. Bunlarda belli bir grup altında toplanırlar. Yukarıda gördüğünümüz gibi her grubun çalıştıracağı servisler bellidir:
C:\WINDOWS\system32\svchost.exe -k DcomLaunch,
C:\WINDOWS\system32\svchost.exe -k netsvcs
C:\WINDOWS\system32\svchost.exe -k rpcss vb. gibi...
Sanırım artık "Svchost.exe nedir, ne işe yarar?" sorusunun cevabını öğrendiniz.
Özetlersek; Svchost.exe Windows üzerinde kendi başına çalışamayan .dll formatındaki Hizmetlerin çalıştırılabilir olmasını sağlayan programdır. Güvenilirdir ve çalışmasına müdahale edilmemelidir.