日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

svchost.exe启动服务原理

發布時間:2024/4/11 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svchost.exe启动服务原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

????雙擊服務列表的服務,可以看到服務詳細信息。

?

?

????其中,C:\Windows\System32\svchost.exe-k netsvcs這個路徑當然就是啟動服務的關鍵信息,其實,后邊的這個-k netsvcs參數并不是在告訴svchost.exe啟動哪個服務,netsvcs代表的是組,表示這個服務是屬于哪個組的,組具體有啥用,大概就是節省資源什么亂七八糟的。正是由于采用了分組機制,系統中才會有多個svchost.exe進程,每個進程代表一個組。

????svchost.exe是怎么區分不同的服務呢?原來是根據服務名字區分的。。。搞個什么參數,弄的這么復雜,原來還是根據服務名字區分的。。。。

????注意服務的名稱,可不是服務列表里直接看到的名稱,雙擊服務從屬性里看以看到,如圖:

?

?

????哪個服務對應哪個dll,都是保存在注冊表里的,路徑是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services。

????就拿上邊的Browser服務來說,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services路徑下有一個Browser項,名字和服務名字一樣(也就是說,有多少個服務,這個路徑下就有多少個項,和服務名稱相對應),這個項里里邊又有一個Parameters子項,Parameters子項里有一個名字叫ServiceDll的鍵,它的值就是dll的路徑。如圖:

?

?

????這樣一來,svchost.exe根據服務名稱找到相應的鍵值,就找到要啟動的dll了。

????當然,不是所有的服務都是通過svchost.exe啟動的,以上的方法僅僅適用于利用svchost.exe啟動的服務,如果服務本身就是exe,而不是dll,不需要借助于svchost.exe

????如果服務不通過svchost.exe啟動,那么就更簡單,直接在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services路徑下找到和服務名稱一樣的項,項中有一個叫ImagePath的鍵,這個鍵的值就是服務exe文件的路徑和啟動參數。如圖:

總結

以上是生活随笔為你收集整理的svchost.exe启动服务原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。