剖析程式中SVCHOST的作用和原理(轉)
剖析程式中SVCHOST的作用和原理(轉)[@more@] 走進SVCHOST SVCHOST程式現在是聲名狼藉,本來Windows用它來啟動各種服務,可是偏偏病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑使用者,達到感染、入侵、破壞的目的(如衝擊波變種病毒“W32.Welchia.Worm”),弄的大家草木皆兵一見有SVCHOST就懷疑自己是否已經中招,其實Windows系統存在多個SVCHOST程式是很正常的,在受感染的機器中到底哪個是病毒程式呢?這裡僅舉一例來說明。 假設Windows XP系統被“W32.Welchia.Worm”感染了。正常的SVCHOST檔案存在於“C:Windowssystem32”目錄下,如果發現該檔案出現在其他目錄下就要小心了。“W32.Welchia.Worm”病毒存在於“C:Windowssystem32wins”目錄中,因此使用程式管理器檢視SVCHOST程式的執行檔案路徑就很容易發現系統是否感染了病毒。Windows系統自帶的工作管理員不能夠檢視程式的路徑,可以使用第三方程式管理軟體,如“Windows最佳化大師”程式管理器,透過這些工具就可很容易地檢視到所有的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”命令。 深入分析SVCHOST 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:WINDOWSsystem32svchost -k rpcss”,這說明RpcSs服務是依靠SVCHOST呼叫“rpcss”引數來實現的,而引數的內容則是存放在系統登錄檔中的。 在執行對話方塊中輸入“regedit.exe”後回車,開啟登錄檔編輯器,找到[HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesRpcSs]項,找到型別為“REG_EXPAND_SZ”的鍵“magePath”,其鍵值為“%SystemRoot%system32svchost -k rpcss”(這就是在服務視窗中看到的服務啟動命令),另外在“Parameters”子項中有個名為“ServiceDll”的鍵,其值為“%SystemRoot%system32
pcss.dll”,其中“rpcss.dll”就是rpcss服務要使用的動態連結庫檔案。這樣SVCHOST程式透過讀取“RpcSs”服務登錄檔資訊,就能啟動該服務了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10763080/viewspace-948399/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Token 的作用和原理
- win10系統Svchost.exe程式有什麼作用Win10
- 揭開SVCHOST.exe程式之謎 (轉)
- svchost.exe系統程式介紹(轉)
- SVCHOST程式解讀
- dns中soa和ns記錄的作用(轉)DNS
- 改變IP地址的原理和作用
- Go interface 原理剖析--型別轉換Go型別
- Java中的volatile的作用和synchronized作用Javasynchronized
- ping命令的作用和原理簡述
- redis自學(33)哨兵的作用和工作原理Redis
- 詳解python的super()的作用和原理Python
- shell 中的export作用(轉載)Export
- 剖析 Elasticsearch 的索引原理Elasticsearch索引
- 建立SvcHost.exe呼叫的服務原理與實踐(1)
- 建立SvcHost.exe呼叫的服務原理與實踐(2)
- Oracle資料庫中物化檢視的原理剖析Oracle資料庫
- ABAP 程式語言中 Class(類)的設計原理剖析
- javascript的call apply和new原理剖析 [手寫]JavaScriptAPP
- 深入剖析Redis客戶端Jedis的特性和原理Redis客戶端
- 交換機的作用、功能和工作原理詳解
- Memcached 原理剖析
- Eureka原理剖析
- AbstractQueuedSynchronizer原理剖析
- JVM原理剖析JVM
- KVC原理剖析
- Java中可重入鎖ReentrantLock原理剖析JavaReentrantLock
- mysql中\G和\g的作用MySql
- 網路地址轉換NAT原理及其作用
- 剖析漢字描紅在flutter中的實現原理Flutter
- 新手學堂:防火牆在網路中的功能和作用(轉)防火牆
- 解析Svchost.exe和Explorer.exe兩大系統程式(zt)
- 一文讀懂DHCP的工作原理和作用
- 【Java技術專題】「原理專題」深入分析Java中finalize方法的作用和底層原理Java
- [java]HashMap原理剖析JavaHashMap
- ReactDom render原理剖析React
- Module Federation原理剖析
- Java CAS 原理剖析Java