導航:首頁 > 軟體問題 > svc如何查看軟體授權

svc如何查看軟體授權

發布時間:2022-08-27 14:58:03

『壹』 如何使Android應用程序獲得root許可權

一般來說, Android 下的應用程序可以逗直接地得到的最大的許可權為 system ,但是如果我們需要在程序中執行某些需要 root 許可權的命令,如 ifconfig 等,就需要 root 許可權了。按照 Simon 的文章中提到的,應用程序有以下兩種辦法臨時獲得 root 許可權:
1) 實現一個 init 實現一個 Service ,來幫助 Android 應用程序執行 root 許可權的命令。
2) 實現一個虛擬設備,這個設備幫助 Android 應用程序執行 root 許可權的命令。

第二種辦法我這里沒有嘗試,暫時也不會。這里講講我在實現第一種辦法的過程和遇到的一些問題。

1. 將我們要執行的命令寫成腳本,或者可執行程序。
下面是我的腳本 ifconfig_test.sh :

# ! /system/bin/sh
ifconfig
注意: 腳本的第一行必須為 # ! /system/bin/sh ,否則無法執行,通過 dmesg 可以查看到信息內容為 cannot execve ./ifconfig_test.sh: Exec format error

也可以採用 C/C++ 編寫需要執行的命令或者程序,並在編譯 image 的時候編譯成可執行程序。

2. 在 init.rc 中注冊 service
Android 中的 service 需要在 init.rc 中注冊, Init.rc 中定義的 Service 將會被 init 進程創建,這樣將可以獲得 root 許可權。當得到相應的通知(通過屬性設置)後, init 進程會啟動該 service 。
本文中注冊的內容如下:

service ifconfig_test /system/etc/ifconfig_test.sh
oneshot
disabled
其中, oneshot 表示程序退出後不再重新啟動, disabled 表示不在系統啟動時啟動。

注意: 這里 service name 不能超過 16 個字元。我之前的 service name 由於定義的比較長, 18 個字元,設置屬性通知 service 啟動後查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代碼,在 parse_service->valid_name 函數中可以看到如下內容: if (strlen(name) > 16) { return 0; } ,證明 service 的名字的確不能超過 16 個字元。

3. 將 Android 應用程序提升為 system 許可權
既然應用程序可以通過啟動 service 獲得 root 許可權,那麼豈不是很不安全。 Android 考慮到了這點,規定只有 system 許可權的應用程序才能設置屬性,通知 service 啟動。關於提升 system 許可權的文章網上已有很多,這里就不再細說,

4. 在應用程序中添加屬性設置代碼
前面已經提到,對於 Android 來說,應用程序通知 init 啟動 service 是通過設置系統屬性來完成的,具體為設置 System 系統屬性 逗ctl.start地 為 逗ifconfig_test地 ,這樣 Android 系統將會幫我們運行 ifconfig_test 這個 service 了。
對該系統屬性的設置有三種方法,分別對應三種不同的應用程序:
1) Java 代碼
Android 在 Java 庫中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通過他們來設置和獲得屬性。代碼如下:
SystemProperties.set("ctl.start", "ifconfig_test");
上面的代碼是通知 Android 執行 ifconfig_test service ,如果需要查詢當前 service 執行的狀態,如是否執行完畢,可以通過如下代碼查詢:
ret = SystemProperties.get("init.svc. ifconfig_test ", "");
if(ret != null && ret.equals("stopped"))
{
return true;
}
2) JNI 代碼
當編寫 NDK 的程序時,可以使用 property_get 和 property_set 這兩個 API 來獲得和設置屬性。使用這兩個 API 必須要包含頭文件 cutils/properties.h 和鏈接 libcutil 庫。

3) Shell 腳本
Android 提供了命令行 setprop 和 getprop 來設置和獲取屬性,他們可以在腳本中被使用。

由於我的程序是在 JNI 中調用腳本,腳本中又執行 ifconfig ,因此我將設置屬性的部分放在了腳本中完成,代碼如下:
setprop ctl.start ifconfig_test

#wait for the service until it stops
ret=1
while [ $ret -ne 0 ]
do
getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped
ret=$?
done
通過上面 4 個步驟, Android 應用程序就獲得了 root 許可權,更具體的說,是在執行我們需要執行的命令時臨時獲得了 root 許可權。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請~~哦

『貳』 svchost.exe電腦有5個這樣進程

系統中的Svchost.exe進程是正常系統進程,不是病毒,不僅僅是你,其他朋友一看到系統中這么多的Svchost.exe進程,第一反應也感覺它是病毒,雖然系統中有多個Svchost.exe進程是正常的,但也不保證都是正常的。聽起來似乎有些矛盾?這讓小菜更有些迷糊,大嘴坐下後給小菜詳細講了起來。

二、鬆了口氣:Svchost.exe是台「CD機」

1.服務裝在「CD機」里

Svchost.exe是NT內核*作系統(Windows 2000/XP/2003都屬於NT內核*作系統)獨有的進程,「Svchost」其實就是「Service Host」(服務宿主)的縮寫。微軟官方對它的定義是:Svchost.exe是從動態鏈接庫(DLL)中運行的服務的通用主機進程名稱,通俗講,它就是一個服務裝載器。大家可以把每個服務想像成一張音樂CD,而Svchost.exe就是用來播放這種CD的CD機。

2.為什麼用「CD機」裝服務

由於Windows 2000/XP系統服務越來越多,以EXE單獨進程的形式啟動所有服務會大大增加系統負擔,為節省系統資源,微軟將一些系統服務以動態鏈接庫(DLL)形式實現,而Svchost.exe就是用來裝載這些DLL文件以啟動系統服務的程序。沒有人會為了發行一張CD而製作一台專用播放此CD的CD機,微軟也一樣。

3.系統里有幾台這樣的「CD機」

那為什麼系統進程列表中的Svchost.exe會有多個呢?微軟為了讓系統能更好地進行服務控制,就允許多個Svchost.exe進程同時運行,每個Svchost.exe進程可以包含一組服務,想像一下可以同時容納3張甚至更多CD的多碟CD機。打開注冊表[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost]主鍵,在窗口右側可以看到許多鍵值,這里的每個鍵值都代表一組服務,鍵值數據則包含了該組服務下面運行的服務名稱列表,每組服務啟動時都會通過單獨的Svchost.exe進程來裝載。Windows XP中默認共有六組服務(見圖2),其中imgsvc、NetworkService、rpcss、termsvcs四個組,它們都只有一個服務運行,這些服務啟動後的Svchost.exe進程用戶名為「SYSTEM」。而LocalService和netsvcs組都啟動了多個服務,它們的Svchost.exe進程用戶名分別為「LOCAL SERVICE」和「NETWORD SERVICE」,從圖1中可以看到這種區別。

圖2 眾多svchost進程的區別

當然了,這六組服務通常並不都是啟動狀態的,根據系統啟動的服務不同,反映在系統進程列表中的Svchost.exe進程數量也是不同的,Windows XP會有四個到六個Svchost.exe進程,而Windows 2000通常則會有兩個Svchost.exe進程。

小提示:點擊「開始→運行」,在運行框中輸入「CMD」回車,然後在打開的命令行窗口中輸入「Tasklist /svc」(不含引號)命令,可以更直觀地看到每個Svchost.exe進程裝載的服務名稱列表(見圖3)。

圖3 查看svchost進程裝載的服務名稱

4.獲取每張「CD」的詳細信息

如果想更進一步了解Svchost.exe裝載的這些服務都是什麼功能,可以記下鍵值數據中的服務名稱,例如「RpcSs」,接著打開注冊表的[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services],再打開下面的「RpcSs」子鍵,在右邊的「Description」鍵值中就可以看到該服務的描述,而在「ImagePath」鍵值數據中則可以看到這個服務的運行命令正是「%SystemRoot%\system32\svchost -k rpcss」(見圖4)。而在「RpcSs」子鍵下還有一個「Parameters」(參數)子鍵,其右邊的「ServiceDll」鍵值數據「%SystemRoot%\system32\rpcss.dll」則表明了RpcSs服務啟動時調用的是系統目錄下的「Rpcss.dll」文件,這就好像你原來只知道CD中歌曲的歌名,現在又讓你能夠查到這首歌的演唱者。

圖4 查看svchost的具體功能

如果覺得通過注冊表查詢服務名稱了解其屬性不太方便,也可以使用「全能助手用Windows服務管理專家」(以下簡稱「服務管理專家」)來查詢,運行軟體後單擊「All Win32 Services」分支,在右側服務列表中根據服務名稱索引即可快速找到要查詢的服務,單擊服務名稱,即可看到該服務的啟動命令以及調用的DLL文件等相關信息(見圖5)。同時軟體還專門設計了Svchost Group分支,可以快速查詢LocalService和netsvcs組中的服務詳細信息。

圖5 用工具查看svchost的情況

全能助手Windows服務管理專家 小檔案

軟體名稱: 全能助手Windows服務管理專家
軟體版本: 1.02
軟體大小: 67KB
軟體授權: 免費
適用平台: Windows 2000/XP
下載地址: 點擊這里下載

三、危機仍在:小心病毒的騙局

由於Svchost.exe進程的特殊性,它隱藏了真正運行的程序的名稱,在表面看到的只是Svchost.exe進程,這個特性同時也讓許多病毒、木馬有空可鑽,企圖以此迷惑用戶。那麼如何判斷系統中的多個Svchost.exe進程是否正常呢?下面針對這類病毒常用的幾種欺騙手法來進行分析。

騙局1:利用假冒Svchost.exe名稱的病毒程序

火眼金睛:這種方式運行的病毒並沒有直接利用真正的Svchost.exe進程,而是啟動了另外一個名稱同樣是Svchost.exe的病毒進程,由於這個假冒的病毒進程並沒有載入系統服務,它和真正的Svchost.exe進程是不同的,只需在命令行窗口中運行一下「Tasklist /svc」,如果看到哪個Svchost.exe進程後面提示的服務信息是「暫缺」(見圖6),而不是一個具體的服務名,那麼它就是病毒進程了,記下這個病毒進程對應的PID數值(進程標識符),即可在任務管理器的進程列表中找到它,結束進程後,在C盤搜索Svchost.exe文件,也可以用第三方進程工具直接查看該進程的路徑,正常的Svchost.exe文件是位於%systemroot%\System32目錄中的,而假冒的Svchost.exe病毒或木馬文件則會在其他目錄,例如「w32.welchina.worm」病毒假冒的Svchost.exe就隱藏在Windows\System32\Wins目錄中,將其刪除,並徹底清除病毒的其他數據即可。

圖6 查看可疑svchost進程

騙局2:一些高級病毒則採用類似系統服務啟動的方式,通過真正的Svchost.exe進程載入病毒程序,而Svchost.exe是通過注冊表數據來決定要裝載的服務列表的,所以病毒通常會在注冊表中採用以下方法進行載入:

添加一個新的服務組,在組里添加病毒服務名
在現有的服務組里直接添加病毒服務名
修改現有服務組里的現有服務屬性,修改其「ServiceDll」鍵值指向病毒程序
判斷方法:病毒程序要通過真正的Svchost.exe進程載入,就必須要修改相關的注冊表數據,可以打開[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost],觀察有沒有增加新的服務組,同時要留意服務組中的服務列表,觀察有沒有可疑的服務名稱,通常來說,病毒不會在只有一個服務名稱的組中添加,往往會選擇LocalService和netsvcs這兩個載入服務較多的組,以干擾分析,還有通過修改服務屬性指向病毒程序的,通過注冊表判斷起來都比較困難,這時可以利用前面介紹的服務管理專家,分別打開LocalService和netsvcs分支,逐個檢查右邊服務列表中的服務屬性,尤其要注意服務描述信息全部為英文的,很可能是第三方安裝的服務,同時要結合它的文件描述、版本、公司等相關信息,進行綜合判斷。例如這個名為PortLess BackDoor的木馬程序,在服務列表中可以看到它的服務描述為「Intranet Services」,而它的文件版本、公司、描述信息更全部為空(見圖7),如果是微軟的系統服務程序是絕對不可能出現這種現象的。從啟動信息「C:\WINDOWS\System32\svchost.exe -k netsvcs」中可以看出這是一款典型的利用Svchost.exe進程載入運行的木馬,知道了其原理,清除方法也很簡單了:先用服務管理專家停止該服務的運行,然後運行regedit.exe打開「注冊表編輯器」,刪除[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IPRIP]主鍵,重新啟動計算機,再刪除%systemroot%\System32目錄中的木馬源程序「svchostdll.dll」,通過按時間排序,又發現了時間完全相同的木馬安裝程序「PortlessInst.exe」,一並刪除即可。

『叄』 svchost問題

圖1 數量眾多的SVCHOST進程

大嘴過來後還沒看電腦,就先告訴小菜,系統中的Svchost.exe進程是正常系統進程,不是病毒,不僅僅是你,其他朋友一看到系統中這么多的 Svchost.exe進程,第一反應也感覺它是病毒,雖然系統中有多個Svchost.exe進程是正常的,但也不保證都是正常的。聽起來似乎有些矛盾?這讓小菜更有些迷糊,大嘴坐下後給小菜詳細講了起來。

二、鬆了口氣:Svchost.exe是台「CD機」

1.服務裝在「CD機」里

Svchost.exe是NT內核*作系統(Windows 2000/XP/2003都屬於NT內核*作系統)獨有的進程,「Svchost」其實就是「Service Host」(服務宿主)的縮寫。微軟官方對它的定義是:Svchost.exe是從動態鏈接庫(DLL)中運行的服務的通用主機進程名稱,通俗講,它就是一個服務裝載器。大家可以把每個服務想像成一張音樂CD,而Svchost.exe就是用來播放這種CD的CD機。

2.為什麼用「CD機」裝服務

由於Windows 2000/XP系統服務越來越多,以EXE單獨進程的形式啟動所有服務會大大增加系統負擔,為節省系統資源,微軟將一些系統服務以動態鏈接庫(DLL)形式實現,而Svchost.exe就是用來裝載這些DLL文件以啟動系統服務的程序。沒有人會為了發行一張CD而製作一台專用播放此CD的CD機,微軟也一樣。

3.系統里有幾台這樣的「CD機」

那為什麼系統進程列表中的Svchost.exe會有多個呢?微軟為了讓系統能更好地進行服務控制,就允許多個Svchost.exe進程同時運行,每個 Svchost.exe進程可以包含一組服務,想像一下可以同時容納3張甚至更多CD的多碟CD機。打開注冊表[HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Svchost]主鍵,在窗口右側可以看到許多鍵值,這里的每個鍵值都代表一組服務,鍵值數據則包含了該組服務下面運行的服務名稱列表,每組服務啟動時都會通過單獨的Svchost.exe進程來裝載。Windows XP中默認共有六組服務(見圖2),其中imgsvc、NetworkService、rpcss、termsvcs四個組,它們都只有一個服務運行,這些服務啟動後的Svchost.exe進程用戶名為「SYSTEM」。而LocalService和netsvcs組都啟動了多個服務,它們的 Svchost.exe進程用戶名分別為「LOCAL SERVICE」和「NETWORD SERVICE」,從圖1中可以看到這種區別。

圖2 眾多svchost進程的區別

當然了,這六組服務通常並不都是啟動狀態的,根據系統啟動的服務不同,反映在系統進程列表中的Svchost.exe進程數量也是不同的,Windows XP會有四個到六個Svchost.exe進程,而Windows 2000通常則會有兩個Svchost.exe進程。

小提示:點擊「開始→運行」,在運行框中輸入「CMD」回車,然後在打開的命令行窗口中輸入「Tasklist /svc」(不含引號)命令,可以更直觀地看到每個Svchost.exe進程裝載的服務名稱列表(見圖3)。

圖3 查看svchost進程裝載的服務名稱

4.獲取每張「CD」的詳細信息

如果想更進一步了解Svchost.exe裝載的這些服務都是什麼功能,可以記下鍵值數據中的服務名稱,例如「RpcSs」,接著打開注冊表的 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services],再打開下面的「RpcSs」子鍵,在右邊的「Description」鍵值中就可以看到該服務的描述,而在「ImagePath」鍵值數據中則可以看到這個服務的運行命令正是「% SystemRoot%\system32\svchost -k rpcss」(見圖4)。而在「RpcSs」子鍵下還有一個「Parameters」(參數)子鍵,其右邊的「ServiceDll」鍵值數據「% SystemRoot%\system32\rpcss.dll」則表明了RpcSs服務啟動時調用的是系統目錄下的「Rpcss.dll」文件,這就好像你原來只知道CD中歌曲的歌名,現在又讓你能夠查到這首歌的演唱者。

圖4 查看svchost的具體功能

如果覺得通過注冊表查詢服務名稱了解其屬性不太方便,也可以使用「全能助手用Windows服務管理專家」(以下簡稱「服務管理專家」)來查詢,運行軟體後單擊「All Win32 Services」分支,在右側服務列表中根據服務名稱索引即可快速找到要查詢的服務,單擊服務名稱,即可看到該服務的啟動命令以及調用的DLL文件等相關信息(見圖5)。同時軟體還專門設計了Svchost Group分支,可以快速查詢LocalService和netsvcs組中的服務詳細信息。

圖5 用工具查看svchost的情況

全能助手Windows服務管理專家 小檔案

軟體名稱: 全能助手Windows服務管理專家
軟體版本: 1.02
軟體大小: 67KB
軟體授權: 免費
適用平台: Windows 2000/XP
下載地址: 點擊這里下載

三、危機仍在:小心病毒的騙局

由於Svchost.exe進程的特殊性,它隱藏了真正運行的程序的名稱,在表面看到的只是Svchost.exe進程,這個特性同時也讓許多病毒、木馬有空可鑽,企圖以此迷惑用戶。那麼如何判斷系統中的多個Svchost.exe進程是否正常呢?下面針對這類病毒常用的幾種欺騙手法來進行分析。

騙局1:利用假冒Svchost.exe名稱的病毒程序

火眼金睛:這種方式運行的病毒並沒有直接利用真正的Svchost.exe進程,而是啟動了另外一個名稱同樣是Svchost.exe的病毒進程,由於這個假冒的病毒進程並沒有載入系統服務,它和真正的Svchost.exe進程是不同的,只需在命令行窗口中運行一下「Tasklist /svc」,如果看到哪個Svchost.exe進程後面提示的服務信息是「暫缺」(見圖6),而不是一個具體的服務名,那麼它就是病毒進程了,記下這個病毒進程對應的PID數值(進程標識符),即可在任務管理器的進程列表中找到它,結束進程後,在C盤搜索Svchost.exe文件,也可以用第三方進程工具直接查看該進程的路徑,正常的Svchost.exe文件是位於%systemroot%\System32目錄中的,而假冒的 Svchost.exe病毒或木馬文件則會在其他目錄,例如「w32.welchina.worm」病毒假冒的Svchost.exe就隱藏在 Windows\System32\Wins目錄中,將其刪除,並徹底清除病毒的其他數據即可。

圖6 查看可疑svchost進程

騙局2:一些高級病毒則採用類似系統服務啟動的方式,通過真正的Svchost.exe進程載入病毒程序,而Svchost.exe是通過注冊表數據來決定要裝載的服務列表的,所以病毒通常會在注冊表中採用以下方法進行載入:

添加一個新的服務組,在組里添加病毒服務名
在現有的服務組里直接添加病毒服務名
修改現有服務組里的現有服務屬性,修改其「ServiceDll」鍵值指向病毒程序
判斷方法:病毒程序要通過真正的Svchost.exe進程載入,就必須要修改相關的注冊表數據,可以打開[HKEY_LOCAL_MACHINE\ Software\Microsoft\WindowsNT\CurrentVersion\Svchost],觀察有沒有增加新的服務組,同時要留意服務組中的服務列表,觀察有沒有可疑的服務名稱,通常來說,病毒不會在只有一個服務名稱的組中添加,往往會選擇LocalService和netsvcs這兩個載入服務較多的組,以干擾分析,還有通過修改服務屬性指向病毒程序的,通過注冊表判斷起來都比較困難,這時可以利用前面介紹的服務管理專家,分別打開 LocalService和netsvcs分支,逐個檢查右邊服務列表中的服務屬性,尤其要注意服務描述信息全部為英文的,很可能是第三方安裝的服務,同時要結合它的文件描述、版本、公司等相關信息,進行綜合判斷。例如這個名為PortLess BackDoor的木馬程序,在服務列表中可以看到它的服務描述為「Intranet Services」,而它的文件版本、公司、描述信息更全部為空(見圖7),如果是微軟的系統服務程序是絕對不可能出現這種現象的。從啟動信息「C:\ WINDOWS\System32\svchost.exe -k netsvcs」中可以看出這是一款典型的利用Svchost.exe進程載入運行的木馬,知道了其原理,清除方法也很簡單了:先用服務管理專家停止該服務的運行,然後運行regedit.exe打開「注冊表編輯器」,刪除[HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Services\IPRIP]主鍵,重新啟動計算機,再刪除%systemroot%\System32目錄中的木馬源程序「svchostdll.dll」,通過按時間排序,又發現了時間完全相同的木馬安裝程序「PortlessInst.exe」,一並刪除即可。

『肆』 怎麼查看,關閉無用的svchost.exe進程,服務

svchost.exe是nt核心系統的非常重要的進程,對於2000、xp來說,不可或缺。很多病毒、木馬也會調用它。所以,深入了解這個程序,是玩電腦的必修課之一。

大家對windows操作系統一定不陌生,但你是否注意到系統中「svchost.exe」這個文件呢?細心的朋友會發現windows中存在多個 「svchost」進程(通過「ctrl+alt+del」鍵打開任務管理器,這里的「進程」標簽中就可看到了),為什麼會這樣呢?下面就來揭開它神秘的面紗。

發現

在基於nt內核的windows操作系統家族中,不同版本的windows系統,存在不同數量的「svchost」進程,用戶使用「任務管理器」可查看其進程數目。一般來說,win2000有兩個svchost進程,winxp中則有四個或四個以上的svchost進程(以後看到系統中有多個這種進程,千萬別立即判定系統有病毒了喲),而win2003 server中則更多。這些svchost進程提供很多系統服務,如:rpcss服務(remote procere call)、dmserver服務(logical disk manager)、dhcp服務(dhcp client)等。

如果要了解每個svchost進程到底提供了多少系統服務,可以在win2000的命令提示符窗口中輸入「tlist -s」命令來查看,該命令是win2000 support tools提供的。在winxp則使用「tasklist /svc」命令。

svchost中可以包含多個服務

深入

windows系統進程分為獨立進程和共享進程兩種,「svchost.exe」文件存在於「%systemroot% system32」目錄下,它屬於共享進程。隨著windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共享方式,交由 svchost.exe進程來啟動。但svchost進程只作為服務宿主,並不能實現任何服務功能,即它只能提供條件讓其他服務在這里被啟動,而它自己卻不能給用戶提供任何服務。那這些服務是如何實現的呢?

原來這些系統服務是以動態鏈接庫(dll)形式實現的,它們把可執行程序指向 svchost,由svchost調用相應服務的動態鏈接庫來啟動服務。那svchost又怎麼知道某個系統服務該調用哪個動態鏈接庫呢?這是通過系統服務在注冊表中設置的參數來實現。下面就以rpcss(remote procere call)服務為例,進行講解。

從啟動參數中可見服務是靠svchost來啟動的。

實例

以windows xp為例,點擊「開始」/「運行」,輸入「services.msc」命令,彈出服務對話框,然後打開「remote procere call」屬性對話框,可以看到rpcss服務的可執行文件的路徑為「c:\windows\system32\svchost -k rpcss」,這說明rpcss服務是依靠svchost調用「rpcss」參數來實現的,而參數的內容則是存放在系統注冊表中的。

在運行對話框中輸入「regedit.exe」後回車,打開注冊表編輯器,找到[hkey_local_machine ]項,找到類型為「reg_expand_sz」的鍵「magepath」,其鍵值為「%systemroot%system32svchost -k rpcss」(這就是在服務窗口中看到的服務啟動命令),另外在「parameters」子項中有個名為「servicedll」的鍵,其值為「% systemroot%system32rpcss.dll」,其中「rpcss.dll」就是rpcss服務要使用的動態鏈接庫文件。這樣 svchost進程通過讀取「rpcss」服務注冊表信息,就能啟動該服務了。

解惑

因為svchost進程啟動各種服務,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的(如沖擊波變種病毒「w32.welchia.worm」)。但windows系統存在多個svchost進程是很正常的,在受感染的機器中到底哪個是病毒進程呢?這里僅舉一例來說明。

假設windows xp系統被「w32.welchia.worm」感染了。正常的svchost文件存在於「c:\windows\system32」目錄下,如果發現該文件出現在其他目錄下就要小心了。「w32.welchia.worm」病毒存在於「c:\windows\system32wins」目錄中,因此使用進程管理器查看svchost進程的執行文件路徑就很容易發現系統是否感染了病毒。windows系統自帶的任務管理器不能夠查看進程的路徑,可以使用第三方進程管理軟體,如「windows優化大師」進程管理器,通過這些工具就可很容易地查看到所有的svchost進程的執行文件路徑,一旦發現其執行路徑為不平常的位置就應該馬上進行檢測和處理。

由於篇幅的關系,不能對svchost全部功能進行詳細介紹,這是一個windows中的一個特殊進程,有興趣的可參考有關技術資料進一步去了解它。大家都要知道Svchost.exe,是系統必不可少的一個進程,很多服務都會多多少少用到它,
但是我想大家也知道,由於它本身特殊性,高明的"黑客們"肯定是不會放過的,前段時間的Svchost.exe木馬風波,大家應該是記憶猶新吧,而且現在還是有很多機器里都藏有此木馬,因為它偽裝和系統進程Svchost.exe一樣,所以很多人分不清,那個是進程,那個是木馬....
好的,還是讓我們詳盡了解一下Svchost.exe進程吧

1.多個服務共享一個 Svchost.exe進程利與弊
windows 系統服務分為獨立進程和共享進程兩種,在windows NT時只有伺服器管理器SCM(Services.exe)有多個共享服務,隨著系統內置服務的增加,在windows 2000中ms又把很多服務做成共享方式,由svchost.exe啟動。windows 2000一般有2個svchost進程,一個是RPCSS(Remote Procere Call)服務進程,另外一個則是由很多服務共享的一個svchost.exe。而在windows XP中,則一般有4個以上的svchost.exe服務進程,windows 2003 server中則更多,可以看出把更多的系統內置服務以共享進程方式由svchost啟動是ms的一個趨勢。這樣做在一定程度上減少了系統資源的消耗,不過也帶來一定的不穩定因素,因為任何一個共享進程的服務因為錯誤退出進程就會導致整個進程中的所有服務都退出。另外就是有一點安全隱患,首先要介紹一下svchost.exe的實現機制。

2. Svchost原理
Svchost本身只是作為服務宿主,並不實現任何服務功能,需要Svchost啟動的服務以動態鏈接庫形式實現,在安裝這些服務時,把服務的可執行程序指向svchost,啟動這些服務時由svchost調用相應服務的動態鏈接庫來啟動服務。

那麼svchost如何知道某一服務是由哪個動態鏈接庫負責呢?這不是由服務的可執行程序路徑中的參數部分提供的,而是服務在注冊表中的參數設置的,注冊表中服務下邊有一個Parameters子鍵其中的ServiceDll表明該服務由哪個動態鏈接庫負責。並且所有這些服務動態鏈接庫都必須要導出一個ServiceMain()函數,用來處理服務任務。

例如rpcss(Remote Procere Call)在注冊表中的位置是 HKEY_LOCAL_,它的參數子鍵Parameters里有這樣一項:
"ServiceDll"=REG_EXPAND_SZ:"%SystemRoot%system32 pcss.dll"
當啟動rpcss服務時,svchost就會調用rpcss.dll,並且執行其ServiceMain()函數執行具體服務。

既然這些服務是使用共享進程方式由svchost啟動的,為什麼系統中會有多個svchost進程呢?ms把這些服務分為幾組,同組服務共享一個svchost進程,不同組服務使用多個svchost進程,組的區別是由服務的可執行程序後邊的參數決定的。

例如rpcss在注冊表中 HKEY_LOCAL_ 有這樣一項:
"ImagePath"=REG_EXPAND_SZ:"%SystemRoot%system32svchost -k rpcss"
因此rpcss就屬於rpcss組,這在服務管理控制台也可以看到。

svchost的所有組和組內的所有服務都在注冊表的如下位置: HKEY_LOCAL_ NTCurrentVersionSvchost,例如windows 2000共有4組rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ:EventSystem.Ias.Iprip.Irmon.Netman.

Nwsapagent.Rasauto.Rasman.Remoteaccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..

在啟動一個svchost.exe負責的服務時,服務管理器如果遇到可執行程序內容ImagePath已經存在於服務管理器的映象庫中,就不在啟動第2個進程svchost,而是直接啟動服務。這樣就實現了多個服務共享一個svchost進程。

3. Svchost代碼
現在我們基本清楚svchost的原理了,但是要自己寫一個DLL形式的服務,由svchost來啟動,僅有上邊的信息還有些問題不是很清楚。比如我們在導出的ServiceMain()函數中接收的參數是ANSI還是Unicode?我們是否需要調用RegisterServiceCtrlHandler和StartServiceCtrlDispatcher來注冊服務控制及調度函數?

這些問題要通過查看svchost代碼獲得。下邊的代碼是windows 2000+ service pack 4 的svchost反匯編片段,可以看出svchost程序還是很簡單的。

主函數首先調用ProcCommandLine()對命令行進行分析,獲得要啟動的服務組,然後調用SvcHostOptions()查詢該服務組的選項和服務組的所有服務,並使用一個數據結構 svcTable 來保存這些服務及其服務的DLL,然後調用PrepareSvcTable() 函數創建 SERVICE_TABLE_ENTRY 結構,把所有處理函數SERVICE_MAIN_FUNCTION 指向自己的一個函數FuncServiceMain(),最後調用API StartServiceCtrlDispatcher() 注冊這些服務的調度函數。

; =============================== Main Funcion =======================================
.text:010010B8 public start
.text:010010B8 start proc near
.text:010010B8 push esi
.text:010010B9 push edi
.text:010010BA push offset sub_1001EBA ; lpTopLevelExceptionFilter
.text:010010BF xor edi, edi
.text:010010C1 call ds:SetUnhandledExceptionFilter
.text:010010C7 push 1 ; uMode
.text:010010C9 call ds:SetErrorMode
.text:010010CF call ds:GetProcessHeap
.text:010010D5 push eax
.text:010010D6 call sub_1001142
.text:010010DB mov eax, offset dword_1003018
.text:010010E0 push offset unk_1003000 ; lpCriticalSection
.text:010010E5 mov dword_100301C, eax
.text:010010EA mov dword_1003018, eax
.text:010010EF call ds:InitializeCriticalSection
.text:010010F5 call ds:GetCommandLineW
.text:010010FB push eax ; lpString
.text:010010FC call ProcCommandLine
.text:01001101 mov esi, eax
.text:01001103 test esi, esi
.text:01001105 jz short lab_doservice
.text:01001107 push esi
.text:01001108 call SvcHostOptions
.text:0100110D call PrepareSvcTable
.text:01001112 mov edi, eax ; SERVICE_TABLE_ENTRY returned
.text:01001114 test edi, edi
.text:01001116 jz short loc_1001128
.text:01001118 mov eax, [esi+10h]
.text:0100111B test eax, eax
.text:0100111D jz short loc_1001128
.text:0100111F push dword ptr [esi+14h] ; dwCapabilities
.text:01001122 push eax ; int
.text:01001123 call InitializeSecurity
.text:01001128
.text:01001128 loc_1001128: ; CODE XREF: start+5Ej
.text:01001128 ; start+65j
.text:01001128 push esi ; lpMem
.text:01001129 call HeapFreeMem
.text:0100112E
.text:0100112E lab_doservice: ; CODE XREF: start+4Dj
.text:0100112E test edi, edi
.text:01001130 jz ExitProgram
.text:01001136 push edi ; lpServiceStartTable
.text:01001137 call ds:StartServiceCtrlDispatcherW
.text:0100113D jmp ExitProgram
.text:0100113D start endp
; =============================== Main Funcion end ===========================================

由於svchost為該組的所有服務都注冊了svchost中的一個處理函數,因此每次啟動任何一個服務時,服務管理器SCM都會調用FuncServiceMain() 這個函數。這個函數使用 svcTable 查詢要啟動的服務使用的DLL,調用DLL導出的ServiceMain()函數來啟動服務,然後返回。
; ============================== FuncServiceMain() ===========================================
.text:01001504 FuncServiceMain proc near ; DATA XREF: PrepareSvcTable+44o
.text:01001504
.text:01001504 arg_0 = dword ptr 8
.text:01001504 arg_4 = dword ptr 0Ch
.text:01001504
.text:01001504 push ecx
.text:01001505 mov eax, [esp+arg_4]
.text:01001509 push ebx
.text:0100150A push ebp
.text:0100150B push esi
.text:0100150C mov ebx, offset unk_1003000
.text:01001511 push edi
.text:01001512 mov edi, [eax]
.text:01001514 push ebx
.text:01001515 xor ebp, ebp
.text:01001517 call ds:EnterCriticalSection
.text:0100151D xor esi, esi
.text:0100151F cmp dwGroupSize, esi
.text:01001525 jbe short loc_1001566
.text:01001527 and [esp+10h], esi
.text:0100152B
.text:0100152B loc_100152B: ; CODE XREF: FuncServiceMain+4Aj
.text:0100152B mov eax, svcTable
.text:01001530 mov ecx, [esp+10h]
.text:01001534 push dword ptr [eax+ecx]
.text:01001537 push edi
.text:01001538 call ds:lstrcmpiW
.text:0100153E test eax, eax
.text:01001540 jz short StartThis
.text:01001542 add dword ptr [esp+10h], 0Ch
.text:01001547 inc esi
.text:01001548 cmp esi, dwGroupSize
.text:0100154E jb short loc_100152B
.text:01001550 jmp short loc_1001566
.text:01001552 ; =================================================
.text:01001552
.text:01001552 StartThis: ; CODE XREF: FuncServiceMain+3Cj
.text:01001552 mov ecx, svcTable
.text:01001558 lea eax, [esi+esi*2]
.text:0100155B lea eax, [ecx+eax*4]
.text:0100155E push eax
.text:0100155F call GetDLLServiceMain
.text:01001564 mov ebp, eax ; dll ServiceMain Function address
.text:01001566
.text:01001566 loc_1001566: ; CODE XREF: FuncServiceMain+21j
.text:01001566 ; FuncServiceMain+4Cj
.text:01001566 push ebx
.text:01001567 call ds:LeaveCriticalSection
.text:0100156D test ebp, ebp
.text:0100156F jz short loc_100157B
.text:01001571 push [esp+10h+arg_4]
.text:01001575 push [esp+14h+arg_0]
.text:01001579 call ebp
.text:0100157B
.text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain+6Bj
.text:0100157B pop edi
.text:0100157C pop esi
.text:0100157D pop ebp
.text:0100157E pop ebx
.text:0100157F pop ecx
.text:01001580 retn 8
.text:01001580 FuncServiceMain endp ; sp = -8
; ============================== FuncServiceMain() end ========================================

由於svchost已經調用了StartServiceCtrlDispatcher來服務調度函數,因此我們在實現DLL實現時就不用了,這主要是因為一個進程只能調用一次StartServiceCtrlDispatcher API。但是需要用 RegisterServiceCtrlHandler 來注冊響應控制請求的函數。最後我們的DLL接收的都是unicode字元串。

由於這種服務啟動後由svchost載入,不增加新的進程,只是svchost的一個DLL,而且一般進行審計時都不會去HKEY_LOCAL_ NTCurrentVersionSvchost 檢查服務組是否變化,就算去檢查,也不一定能發現異常,因此如果添加一個這樣的DLL後門,偽裝的好,是比較隱蔽的。

4. 安裝服務與設置
要通過svchost調用來啟動的服務,就一定要在HKEY_LOCAL_ NTCurrentVersionSvchost下有該服務名,這可以通過如下方式來實現:
1) 添加一個新的服務組,在組里添加服務名
2) 在現有組里添加服務名
3) 直接使用現有服務組里的一個服務名,但本機沒有安裝的服務
4) 修改現有服務組里的現有服務,把它的ServiceDll指向自己

其中前兩種可以被正常服務使用,如使用第1種方式,啟動其服務要創建新的svchost進程;第2種方式如果該組服務已經運行,安裝後不能立刻啟動服務,因為svchost啟動後已經把該組信息保存在內存里,並調用API StartServiceCtrlDispatcher() 為該組所有服務注冊了調度處理函數,新增加的服務不能再注冊調度處理函數,需要重起計算機或者該組的svchost進程。而後兩種可能被後門使用,尤其是最後一種,沒有添加服務,只是改了注冊表裡一項設置,從服務管理控制台又看不出來,如果作為後門還是很隱蔽的。比如EventSystem服務,預設是指向es.dll,如果把ServiceDll改為EventSystem.dll就很難發現。

因此服務的安裝除了調用CreateService()創建服務之外,還需要設置服務的ServiceDll,如果使用前2種還要設置svchost的注冊表選項,在卸載時也最好刪除增加的部分。

註: ImagePath 和ServiceDll 是ExpandString不是普通字元串。因此如果使用.reg文件安裝時要注意。

『伍』 svchost.exe

你好!電腦出現:【該內存不能為read與written】,原因是比較復雜的,請對症下葯!

【答案原創,引用請說明,原作者:力王歷史】!偶然出現!點:【確定或取消】,即可!

1。配置錯誤!【重啟,出完電腦品牌後,按F8,安全模式,最後一次正確配置,回車,回車】!
2。系統漏洞!【360安全衛士或金山衛士,或可牛免費殺毒,修復:高危和重要的,其它忽略】!
3。軟體沖突!【卸載不常用的軟體,保持系統穩定,尤其是同類型的軟體,不兼容】!
4。軟體版本過舊!【使用:(驅動人生),更新:顯卡驅動,音效卡驅動!其它軟體,覆蓋安裝】!
5。病毒木馬!【殺毒軟體,全盤掃描與自定義掃描,完畢後,隔離區,徹底刪除】!
6。惡評插件!【可牛免費殺毒,金山衛士,或360安全衛士,清理惡評插件】!
7。可疑啟動項!【360系統急救箱,開始急救,文件恢復區,徹底刪除文件】!
8。系統文件損壞!【金山急救箱】,擴展掃描,立即掃描,立即處理,重啟電腦】!
9。專業工具!【去網上下載一個:read修復工具,修復,試試】!
10。指令修復法!開始菜單,運行 ,輸入cmd, 回車,在命令提示符下輸入(復制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘貼,回車,滾動完畢後,再輸入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回車!直到屏幕滾動停止為止,重啟電腦!

『陸』 誰了解一個名為SVCHOST.EXE的進程

vchost.exe、lsass.exe、wdfmgr.exe,打開進程列表後你會發現一大堆不知用途的進程,究竟是系統進程還是木馬病毒?如果打開系統文件夾,一大堆奇奇怪怪名稱的文件,更是會把你弄得暈頭轉向。很多朋友因此而始終抱有一種未知的恐懼,認為木馬、黑客無處不在,即使是高手,也不能把這些陌生的系統文件說個明明白白。為消除大家的疑惑,從這期開始為大家帶來一檔新的連載欄目——系統藍色檔案為大家曝光這些隱秘文件的秘密。兩位主人公,現在就來認識一下。

主人公介紹

小菜:剛接觸電腦不久的菜鳥,但對電腦知識有著非常濃厚的學習興趣,常說的一句話是「菜鳥先飛」。

大嘴:樂於助人的老鳥,經常被別人冠以「大嘴高手」稱號,不過這並不是指他嘴特別大,而是一談到電腦知識就滔滔不絕。

一、緊急狀況:系統發現嚴重病毒

小菜剛剛學習了進程的概念和知識,於是就打開「任務管理器」觀察系統中的進程,這一看不要緊,還真發現了一個「病毒」Svchost.exe,這傢伙在系統進程列表中竟然有5個之多(見圖1),於是小菜就逐個結束這些進程,沒想到第二個進程結束後還會再生,而結束第四個進程時更離譜,系統提示「系統即將關機,離關機還有60秒」,進程再生、錯誤提示,這些典型的病毒「症狀」更讓小菜相信「Svchost.exe」是病毒無疑,但無法結束進程,又該怎麼清除病毒呢?小菜只好請來了大嘴。

圖1 數量眾多的SVCHOST進程

大嘴過來後還沒看電腦,就先告訴小菜,系統中的Svchost.exe進程是正常系統進程,不是病毒,不僅僅是你,其他朋友一看到系統中這么多的 Svchost.exe進程,第一反應也感覺它是病毒,雖然系統中有多個Svchost.exe進程是正常的,但也不保證都是正常的。聽起來似乎有些矛盾?這讓小菜更有些迷糊,大嘴坐下後給小菜詳細講了起來。

二、鬆了口氣:Svchost.exe是台「CD機」

1.服務裝在「CD機」里

Svchost.exe是NT內核*作系統(Windows 2000/XP/2003都屬於NT內核*作系統)獨有的進程,「Svchost」其實就是「Service Host」(服務宿主)的縮寫。微軟官方對它的定義是:Svchost.exe是從動態鏈接庫(DLL)中運行的服務的通用主機進程名稱,通俗講,它就是一個服務裝載器。大家可以把每個服務想像成一張音樂CD,而Svchost.exe就是用來播放這種CD的CD機。

2.為什麼用「CD機」裝服務

由於Windows 2000/XP系統服務越來越多,以EXE單獨進程的形式啟動所有服務會大大增加系統負擔,為節省系統資源,微軟將一些系統服務以動態鏈接庫(DLL)形式實現,而Svchost.exe就是用來裝載這些DLL文件以啟動系統服務的程序。沒有人會為了發行一張CD而製作一台專用播放此CD的CD機,微軟也一樣。

3.系統里有幾台這樣的「CD機」

那為什麼系統進程列表中的Svchost.exe會有多個呢?微軟為了讓系統能更好地進行服務控制,就允許多個Svchost.exe進程同時運行,每個 Svchost.exe進程可以包含一組服務,想像一下可以同時容納3張甚至更多CD的多碟CD機。打開注冊表[HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Svchost]主鍵,在窗口右側可以看到許多鍵值,這里的每個鍵值都代表一組服務,鍵值數據則包含了該組服務下面運行的服務名稱列表,每組服務啟動時都會通過單獨的Svchost.exe進程來裝載。Windows XP中默認共有六組服務(見圖2),其中imgsvc、NetworkService、rpcss、termsvcs四個組,它們都只有一個服務運行,這些服務啟動後的Svchost.exe進程用戶名為「SYSTEM」。而LocalService和netsvcs組都啟動了多個服務,它們的 Svchost.exe進程用戶名分別為「LOCAL SERVICE」和「NETWORD SERVICE」,從圖1中可以看到這種區別。

圖2 眾多svchost進程的區別

當然了,這六組服務通常並不都是啟動狀態的,根據系統啟動的服務不同,反映在系統進程列表中的Svchost.exe進程數量也是不同的,Windows XP會有四個到六個Svchost.exe進程,而Windows 2000通常則會有兩個Svchost.exe進程。

小提示:點擊「開始→運行」,在運行框中輸入「CMD」回車,然後在打開的命令行窗口中輸入「Tasklist /svc」(不含引號)命令,可以更直觀地看到每個Svchost.exe進程裝載的服務名稱列表(見圖3)。

圖3 查看svchost進程裝載的服務名稱

4.獲取每張「CD」的詳細信息

如果想更進一步了解Svchost.exe裝載的這些服務都是什麼功能,可以記下鍵值數據中的服務名稱,例如「RpcSs」,接著打開注冊表的 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services],再打開下面的「RpcSs」子鍵,在右邊的「Description」鍵值中就可以看到該服務的描述,而在「ImagePath」鍵值數據中則可以看到這個服務的運行命令正是「% SystemRoot%\system32\svchost -k rpcss」(見圖4)。而在「RpcSs」子鍵下還有一個「Parameters」(參數)子鍵,其右邊的「ServiceDll」鍵值數據「% SystemRoot%\system32\rpcss.dll」則表明了RpcSs服務啟動時調用的是系統目錄下的「Rpcss.dll」文件,這就好像你原來只知道CD中歌曲的歌名,現在又讓你能夠查到這首歌的演唱者。

圖4 查看svchost的具體功能

如果覺得通過注冊表查詢服務名稱了解其屬性不太方便,也可以使用「全能助手用Windows服務管理專家」(以下簡稱「服務管理專家」)來查詢,運行軟體後單擊「All Win32 Services」分支,在右側服務列表中根據服務名稱索引即可快速找到要查詢的服務,單擊服務名稱,即可看到該服務的啟動命令以及調用的DLL文件等相關信息(見圖5)。同時軟體還專門設計了Svchost Group分支,可以快速查詢LocalService和netsvcs組中的服務詳細信息。

圖5 用工具查看svchost的情況

全能助手Windows服務管理專家 小檔案

軟體名稱: 全能助手Windows服務管理專家
軟體版本: 1.02
軟體大小: 67KB
軟體授權: 免費
適用平台: Windows 2000/XP
下載地址: 點擊這里下載

三、危機仍在:小心病毒的騙局

由於Svchost.exe進程的特殊性,它隱藏了真正運行的程序的名稱,在表面看到的只是Svchost.exe進程,這個特性同時也讓許多病毒、木馬有空可鑽,企圖以此迷惑用戶。那麼如何判斷系統中的多個Svchost.exe進程是否正常呢?下面針對這類病毒常用的幾種欺騙手法來進行分析。

騙局1:利用假冒Svchost.exe名稱的病毒程序

火眼金睛:這種方式運行的病毒並沒有直接利用真正的Svchost.exe進程,而是啟動了另外一個名稱同樣是Svchost.exe的病毒進程,由於這個假冒的病毒進程並沒有載入系統服務,它和真正的Svchost.exe進程是不同的,只需在命令行窗口中運行一下「Tasklist /svc」,如果看到哪個Svchost.exe進程後面提示的服務信息是「暫缺」(見圖6),而不是一個具體的服務名,那麼它就是病毒進程了,記下這個病毒進程對應的PID數值(進程標識符),即可在任務管理器的進程列表中找到它,結束進程後,在C盤搜索Svchost.exe文件,也可以用第三方進程工具直接查看該進程的路徑,正常的Svchost.exe文件是位於%systemroot%\System32目錄中的,而假冒的 Svchost.exe病毒或木馬文件則會在其他目錄,例如「w32.welchina.worm」病毒假冒的Svchost.exe就隱藏在 Windows\System32\Wins目錄中,將其刪除,並徹底清除病毒的其他數據即可。

圖6 查看可疑svchost進程

騙局2:一些高級病毒則採用類似系統服務啟動的方式,通過真正的Svchost.exe進程載入病毒程序,而Svchost.exe是通過注冊表數據來決定要裝載的服務列表的,所以病毒通常會在注冊表中採用以下方法進行載入:

添加一個新的服務組,在組里添加病毒服務名
在現有的服務組里直接添加病毒服務名
修改現有服務組里的現有服務屬性,修改其「ServiceDll」鍵值指向病毒程序
判斷方法:病毒程序要通過真正的Svchost.exe進程載入,就必須要修改相關的注冊表數據,可以打開[HKEY_LOCAL_MACHINE\ Software\Microsoft\WindowsNT\CurrentVersion\Svchost],觀察有沒有增加新的服務組,同時要留意服務組中的服務列表,觀察有沒有可疑的服務名稱,通常來說,病毒不會在只有一個服務名稱的組中添加,往往會選擇LocalService和netsvcs這兩個載入服務較多的組,以干擾分析,還有通過修改服務屬性指向病毒程序的,通過注冊表判斷起來都比較困難,這時可以利用前面介紹的服務管理專家,分別打開 LocalService和netsvcs分支,逐個檢查右邊服務列表中的服務屬性,尤其要注意服務描述信息全部為英文的,很可能是第三方安裝的服務,同時要結合它的文件描述、版本、公司等相關信息,進行綜合判斷。例如這個名為PortLess BackDoor的木馬程序,在服務列表中可以看到它的服務描述為「Intranet Services」,而它的文件版本、公司、描述信息更全部為空(見圖7),如果是微軟的系統服務程序是絕對不可能出現這種現象的。從啟動信息「C:\ WINDOWS\System32\svchost.exe -k netsvcs」中可以看出這是一款典型的利用Svchost.exe進程載入運行的木馬,知道了其原理,清除方法也很簡單了:先用服務管理專家停止該服務的運行,然後運行regedit.exe打開「注冊表編輯器」,刪除[HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Services\IPRIP]主鍵,重新啟動計算機,再刪除%systemroot%\System32目錄中的木馬源程序「svchostdll.dll」,通過按時間排序,又發現了時間完全相同的木馬安裝程序「PortlessInst.exe」,一並刪除即可。
雖然是搜的但是很不錯你看吧

『柒』 啟動項里,這些要啟動嗎,哪些可以不用啟動

進程文件: spoolsv or spoolsv.exe
進程名稱: Printer Spooler Service
描述: Windows列印任務控製程序,用以列印機就緒。
常見錯誤: N/A
是否為系統進程: 是

2svchost.exe是NT核心系統非常重要的文件,對於Win2000/XP來說,不可或缺。這些svchost進程提供很多系統服務,如:rpcss服務(remote procere call)、dmserver服務(logical disk manager)、dhcp服務(dhcp client)等等。

如果要了解每個svchost進程到底提供了多少系統服務,可以在WinXP的命令提示符窗口中輸入「tasklist /svc」命令來查看。
不能刪

3進程文件: soundman or soundman.exe
進程名稱: Realtek Avance Logic Inc
進程類別:應用進程
英文描述:
soundman.exe is a installed with Sound cards made by Realtek. This process merely places an icon on the system tray for easy access to diagnostic features. This program is a non-essential process, but should not be terminated unless suspected to be caus
中文參考:
soundman.exe是Realtek音效卡相關程序。該進程在系統托盤駐留,用於進行快速訪問和診斷。
出品者:Realtek Avance Logic Inc.
屬於:Realtek Avance Logic Inc
系統進程:No
後台程序:Yes
網路相關:No
常見錯誤:N/A
內存使用:N/A

4SKdaemon.exe 應該是聯想電腦專用服務台吧

5nwiz.exe是NVidia的Nview特性相關程序。該程序用於用戶對其特性進行配置,將桌面擴展到多台顯示器上。

6
進程文件: NVCPL or NVCPL.EXE
進程名稱: W32.SpyBot.S Worm
進程類別:存在安全風險的進程
NVCPL.EXE是W32.SpyBot.S蠕蟲病毒的一部分。該病毒例如Windows LSASS漏洞,製造緩沖區溢出導致你的計算機崩潰。更多信息可參考微軟網站:http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx

『捌』 svchost.exe是什麼

vchost.exe、lsass.exe、wdfmgr.exe,打開進程列表後你會發現一大堆不知用途的進程,究竟是系統進程還是木馬病毒?如果打開系統文件夾,一大堆奇奇怪怪名稱的文件,更是會把你弄得暈頭轉向。很多朋友因此而始終抱有一種未知的恐懼,認為木馬、黑客無處不在,即使是高手,也不能把這些陌生的系統文件說個明明白白。為消除大家的疑惑,從這期開始為大家帶來一檔新的連載欄目——系統藍色檔案為大家曝光這些隱秘文件的秘密。兩位主人公,現在就來認識一下。

主人公介紹

小菜:剛接觸電腦不久的菜鳥,但對電腦知識有著非常濃厚的學習興趣,常說的一句話是「菜鳥先飛」。

大嘴:樂於助人的老鳥,經常被別人冠以「大嘴高手」稱號,不過這並不是指他嘴特別大,而是一談到電腦知識就滔滔不絕。

一、緊急狀況:系統發現嚴重病毒

小菜剛剛學習了進程的概念和知識,於是就打開「任務管理器」觀察系統中的進程,這一看不要緊,還真發現了一個「病毒」Svchost.exe,這傢伙在系統進程列表中竟然有5個之多(見圖1),於是小菜就逐個結束這些進程,沒想到第二個進程結束後還會再生,而結束第四個進程時更離譜,系統提示「系統即將關機,離關機還有60秒」,進程再生、錯誤提示,這些典型的病毒「症狀」更讓小菜相信「Svchost.exe」是病毒無疑,但無法結束進程,又該怎麼清除病毒呢?小菜只好請來了大嘴。

圖1 數量眾多的SVCHOST進程

大嘴過來後還沒看電腦,就先告訴小菜,系統中的Svchost.exe進程是正常系統進程,不是病毒,不僅僅是你,其他朋友一看到系統中這么多的 Svchost.exe進程,第一反應也感覺它是病毒,雖然系統中有多個Svchost.exe進程是正常的,但也不保證都是正常的。聽起來似乎有些矛盾?這讓小菜更有些迷糊,大嘴坐下後給小菜詳細講了起來。

二、鬆了口氣:Svchost.exe是台「CD機」

1.服務裝在「CD機」里

Svchost.exe是NT內核*作系統(Windows 2000/XP/2003都屬於NT內核*作系統)獨有的進程,「Svchost」其實就是「Service Host」(服務宿主)的縮寫。微軟官方對它的定義是:Svchost.exe是從動態鏈接庫(DLL)中運行的服務的通用主機進程名稱,通俗講,它就是一個服務裝載器。大家可以把每個服務想像成一張音樂CD,而Svchost.exe就是用來播放這種CD的CD機。

2.為什麼用「CD機」裝服務

由於Windows 2000/XP系統服務越來越多,以EXE單獨進程的形式啟動所有服務會大大增加系統負擔,為節省系統資源,微軟將一些系統服務以動態鏈接庫(DLL)形式實現,而Svchost.exe就是用來裝載這些DLL文件以啟動系統服務的程序。沒有人會為了發行一張CD而製作一台專用播放此CD的CD機,微軟也一樣。

3.系統里有幾台這樣的「CD機」

那為什麼系統進程列表中的Svchost.exe會有多個呢?微軟為了讓系統能更好地進行服務控制,就允許多個Svchost.exe進程同時運行,每個 Svchost.exe進程可以包含一組服務,想像一下可以同時容納3張甚至更多CD的多碟CD機。打開注冊表[HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Svchost]主鍵,在窗口右側可以看到許多鍵值,這里的每個鍵值都代表一組服務,鍵值數據則包含了該組服務下面運行的服務名稱列表,每組服務啟動時都會通過單獨的Svchost.exe進程來裝載。Windows XP中默認共有六組服務(見圖2),其中imgsvc、NetworkService、rpcss、termsvcs四個組,它們都只有一個服務運行,這些服務啟動後的Svchost.exe進程用戶名為「SYSTEM」。而LocalService和netsvcs組都啟動了多個服務,它們的 Svchost.exe進程用戶名分別為「LOCAL SERVICE」和「NETWORD SERVICE」,從圖1中可以看到這種區別。

圖2 眾多svchost進程的區別

當然了,這六組服務通常並不都是啟動狀態的,根據系統啟動的服務不同,反映在系統進程列表中的Svchost.exe進程數量也是不同的,Windows XP會有四個到六個Svchost.exe進程,而Windows 2000通常則會有兩個Svchost.exe進程。

小提示:點擊「開始→運行」,在運行框中輸入「CMD」回車,然後在打開的命令行窗口中輸入「Tasklist /svc」(不含引號)命令,可以更直觀地看到每個Svchost.exe進程裝載的服務名稱列表(見圖3)。

圖3 查看svchost進程裝載的服務名稱

4.獲取每張「CD」的詳細信息

如果想更進一步了解Svchost.exe裝載的這些服務都是什麼功能,可以記下鍵值數據中的服務名稱,例如「RpcSs」,接著打開注冊表的 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services],再打開下面的「RpcSs」子鍵,在右邊的「Description」鍵值中就可以看到該服務的描述,而在「ImagePath」鍵值數據中則可以看到這個服務的運行命令正是「% SystemRoot%\system32\svchost -k rpcss」(見圖4)。而在「RpcSs」子鍵下還有一個「Parameters」(參數)子鍵,其右邊的「ServiceDll」鍵值數據「% SystemRoot%\system32\rpcss.dll」則表明了RpcSs服務啟動時調用的是系統目錄下的「Rpcss.dll」文件,這就好像你原來只知道CD中歌曲的歌名,現在又讓你能夠查到這首歌的演唱者。

圖4 查看svchost的具體功能

如果覺得通過注冊表查詢服務名稱了解其屬性不太方便,也可以使用「全能助手用Windows服務管理專家」(以下簡稱「服務管理專家」)來查詢,運行軟體後單擊「All Win32 Services」分支,在右側服務列表中根據服務名稱索引即可快速找到要查詢的服務,單擊服務名稱,即可看到該服務的啟動命令以及調用的DLL文件等相關信息(見圖5)。同時軟體還專門設計了Svchost Group分支,可以快速查詢LocalService和netsvcs組中的服務詳細信息。

圖5 用工具查看svchost的情況

全能助手Windows服務管理專家 小檔案

軟體名稱: 全能助手Windows服務管理專家
軟體版本: 1.02
軟體大小: 67KB
軟體授權: 免費
適用平台: Windows 2000/XP
下載地址: 點擊這里下載

三、危機仍在:小心病毒的騙局

由於Svchost.exe進程的特殊性,它隱藏了真正運行的程序的名稱,在表面看到的只是Svchost.exe進程,這個特性同時也讓許多病毒、木馬有空可鑽,企圖以此迷惑用戶。那麼如何判斷系統中的多個Svchost.exe進程是否正常呢?下面針對這類病毒常用的幾種欺騙手法來進行分析。

騙局1:利用假冒Svchost.exe名稱的病毒程序

火眼金睛:這種方式運行的病毒並沒有直接利用真正的Svchost.exe進程,而是啟動了另外一個名稱同樣是Svchost.exe的病毒進程,由於這個假冒的病毒進程並沒有載入系統服務,它和真正的Svchost.exe進程是不同的,只需在命令行窗口中運行一下「Tasklist /svc」,如果看到哪個Svchost.exe進程後面提示的服務信息是「暫缺」(見圖6),而不是一個具體的服務名,那麼它就是病毒進程了,記下這個病毒進程對應的PID數值(進程標識符),即可在任務管理器的進程列表中找到它,結束進程後,在C盤搜索Svchost.exe文件,也可以用第三方進程工具直接查看該進程的路徑,正常的Svchost.exe文件是位於%systemroot%\System32目錄中的,而假冒的 Svchost.exe病毒或木馬文件則會在其他目錄,例如「w32.welchina.worm」病毒假冒的Svchost.exe就隱藏在 Windows\System32\Wins目錄中,將其刪除,並徹底清除病毒的其他數據即可。

圖6 查看可疑svchost進程

騙局2:一些高級病毒則採用類似系統服務啟動的方式,通過真正的Svchost.exe進程載入病毒程序,而Svchost.exe是通過注冊表數據來決定要裝載的服務列表的,所以病毒通常會在注冊表中採用以下方法進行載入:

添加一個新的服務組,在組里添加病毒服務名
在現有的服務組里直接添加病毒服務名
修改現有服務組里的現有服務屬性,修改其「ServiceDll」鍵值指向病毒程序
判斷方法:病毒程序要通過真正的Svchost.exe進程載入,就必須要修改相關的注冊表數據,可以打開[HKEY_LOCAL_MACHINE\ Software\Microsoft\WindowsNT\CurrentVersion\Svchost],觀察有沒有增加新的服務組,同時要留意服務組中的服務列表,觀察有沒有可疑的服務名稱,通常來說,病毒不會在只有一個服務名稱的組中添加,往往會選擇LocalService和netsvcs這兩個載入服務較多的組,以干擾分析,還有通過修改服務屬性指向病毒程序的,通過注冊表判斷起來都比較困難,這時可以利用前面介紹的服務管理專家,分別打開 LocalService和netsvcs分支,逐個檢查右邊服務列表中的服務屬性,尤其要注意服務描述信息全部為英文的,很可能是第三方安裝的服務,同時要結合它的文件描述、版本、公司等相關信息,進行綜合判斷。例如這個名為PortLess BackDoor的木馬程序,在服務列表中可以看到它的服務描述為「Intranet Services」,而它的文件版本、公司、描述信息更全部為空(見圖7),如果是微軟的系統服務程序是絕對不可能出現這種現象的。從啟動信息「C:\ WINDOWS\System32\svchost.exe -k netsvcs」中可以看出這是一款典型的利用Svchost.exe進程載入運行的木馬,知道了其原理,清除方法也很簡單了:先用服務管理專家停止該服務的運行,然後運行regedit.exe打開「注冊表編輯器」,刪除[HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Services\IPRIP]主鍵,重新啟動計算機,再刪除%systemroot%\System32目錄中的木馬源程序「svchostdll.dll」,通過按時間排序,又發現了時間完全相同的木馬安裝程序「PortlessInst.exe」,一並刪除即可。

『玖』 如何查看電腦上的證書是哪些應用在使用它

一般是在運行里輸入certmgr.msc,打開就可以看到,有個人和企業等。個人的都會有發布校機構,一般你使用了這個機構的軟體或服務。

閱讀全文

與svc如何查看軟體授權相關的資料

熱點內容
電腦上怎麼下載班智達的軟體 瀏覽:1157
無痕跡消除圖片軟體 瀏覽:722
免費小票軟體 瀏覽:954
華為在哪裡設置軟體停止運行 瀏覽:961
用電腦鍵盤調節聲音大小 瀏覽:1258
自動刷軟體賺錢 瀏覽:1261
古裝連續劇免費版 瀏覽:1414
工免費漫畫 瀏覽:1144
手機軟體專門儲存文件 瀏覽:1509
uos如何用命令安裝軟體 瀏覽:1316
有線耳機插電腦麥克風 瀏覽:647
侏羅紀世界3在線觀看完整免費 瀏覽:995
單個軟體怎麼設置名稱 瀏覽:719
鳳凰網電腦版下載視頻怎麼下載視頻怎麼下載 瀏覽:1385
明白之後如何免費獲得無人機 瀏覽:831
如何解禁軟體菜單 瀏覽:855
副路由器連接電腦視頻 瀏覽:1351
內置wifi電視如何裝軟體 瀏覽:1107
手機換零免費雪碧 瀏覽:1589
國行蘋果如何下載美版軟體 瀏覽:1213