史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-07-01, 02:45 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 剖析視窗操作系統的SVCHOST行程之謎

在關於NT內核的Windows操作系統家族中,不同版本的Windows系統,存在不同數量的「SVCHOST」行程,用戶使用「工作管理器」可檢視其行程數目。


一般來說,Win2000有兩個SVCHOST行程,WinXP中則有四個或四個以上的SVCHOST行程(以後看到系統中有多個這種行程,千萬別立即判定系統有病毒了喲),而Win2003 server中則更多。這些SVCHOST行程提供很多系統服務,如:RpcSs服務(Remote Procedure Call)、dmserver服務(Logical Disk Manager)、Dhcp服務(DHCP Client)等。

  如果要瞭解每個SVCHOST行程到底提供了多少系統服務,可以在Win2000的命令提示字元視窗中輸入「Tlist -S」指令來檢視,該指令是Win2000 Support Tools提供的。在WinXP則使用「tasklist /svc」指令。
深入

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

  原來這些系統服務是以動態連接庫(DLL)形式實現的,它們把可執行程序指向SVCHOST,由SVCHOST使用相應服務的動態連接庫來啟動服務。


那SVCHOST又怎麼知道某個系統服務該使用哪個動態連接庫呢?這是通過系統服務在註冊表中設定的參數來實現。下面就以RpcSs(Remote Procedure Call)服務為例,進行講解。



實例:
筆者以Windows XP為例,點擊「開始」/「執行」,輸入「services.msc」指令,彈出服務對話視窗,然後開啟「Remote Procedure Call」內容對話視窗,可以看到RpcSs服務的可執行文件的路徑為「C:\WINDOWS\system32\svchost -k rpcss」,這說明RpcSs服務是依靠SVCHOST使用「rpcss」參數來實現的,而參數的內容則是存放在系統註冊表中的。


  在執行對話視窗中輸入「regedit.exe」後Enter鍵,開啟註冊表編輯器,找到[HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\RpcSs]項,找到類型為「REG_EXPAND_SZ」的鍵「magePath」,其鍵值為「%SystemRoot%\system32\svchost -k rpcss」(這就是在服務視窗中看到的服務啟動指令),另外在「Parameters」子項中有個名為「ServiceDll」的鍵,其值為「%SystemRoot%\system32\rpcss.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\system32\wins」目錄中,因此使用行程管理器檢視SVCHOST行程的執行文件路徑就很容易發現系統是否感染了病毒。


Windows系統原有的的工作管理器不能夠檢視行程的路徑,可以使用第三方行程管理軟體,如「Windows最佳化大師」行程管理器,通過這些工具就可很容易地檢視到所有的SVCHOST行程的執行文件路徑,一旦發現其執行路徑為不平常的位置就應該馬上進行檢測和處理。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2004-07-01, 08:16 PM   #2 (permalink)
註冊會員
榮譽勳章
UID - 14476
在線等級: 級別:8 | 在線時長:115小時 | 升級還需:2小時級別:8 | 在線時長:115小時 | 升級還需:2小時級別:8 | 在線時長:115小時 | 升級還需:2小時
註冊日期: 2002-12-19
VIP期限: 2011-06
住址: 美女主播群親衛隊
文章: 243
精華: 0
現金: 0 金幣
資產: 1009257 金幣
預設

嗯,感謝大大的分享
joexyz 目前離線  
送花文章: 1, 收花文章: 5 篇, 收花: 5 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 11:17 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1