一文带你掌握监控进程技术实现
文章目錄
- 1.技術(shù)應用背景
- 2.效果展示
- 3.功能代碼實現(xiàn)
- 4.知識背景清單
- 5.WMI相關(guān)概念
- 6.WMI相關(guān)函數(shù)
- 7.WMI架構(gòu)解析
1.技術(shù)應用背景
目前已知在殺毒廠商以及游戲廠商的安全對抗過程中,常常需要準確的監(jiān)控收集并進行檢測用戶創(chuàng)建打開的EXE應用程序是否是安全的。同時也可以將此技術(shù)應用于其他應用的安全對抗方案中。那么如何去準確的監(jiān)控和收集用戶每次點擊打開的EXE應用程序信息呢?接下來我就進行還原實現(xiàn)下如何準確的監(jiān)控并收集用戶每次點擊打開EXE應用程序技術(shù)。
2.效果展示
下圖展示的是開啟監(jiān)控程序,這是進行監(jiān)控電腦上包括系統(tǒng)自啟動EXE程序以及用戶主動點擊啟動應用程序的信息。
3.功能代碼實現(xiàn)
實現(xiàn)監(jiān)控用戶所有創(chuàng)建打開EXE程序的數(shù)據(jù)需要以下幾個步驟:
1.通過調(diào)用CoInitializeEx函數(shù),進行對COM初始化。
2.通過調(diào)用 CoCreateInstance函數(shù), 獲得WMI的定位器。
3.通過調(diào)用IWbemLocator::ConnectServer函數(shù),并指定函數(shù)的參數(shù) strNetworkResource 的值為 “root\cimv2”, 從而實現(xiàn)連接到 "IWbemServices"服務器。
5.通過調(diào)用 ExecNotificationQuery函數(shù), 來進行查詢接收事件。
下圖這部分代碼主要的目的是為了初始化COM和WMI的設(shè)置。
下面代碼主要實現(xiàn)查詢接收事件,也就是通過ExecNotificationQuery查詢來循環(huán)獲取用戶所創(chuàng)建打開的所有EXE的數(shù)據(jù)。
4.知識背景清單
概述:WMI技術(shù)算得上是一個很古老的技術(shù),它是由微軟提供的,同時也是一種非常可靠的解決方案。WMI它還有一個非常大的優(yōu)勢,可以進行訪問遠程電腦。它是Windows操作系統(tǒng)中管理數(shù)據(jù)和操作的基礎(chǔ)模塊,它提供了一個通過操作系統(tǒng)、網(wǎng)絡(luò)和企業(yè)環(huán)境去管理本地或遠程計算機的統(tǒng)一接口集。
WMI技術(shù)可以應用于:
1.查詢獲取正在運行進程信息;
2.查詢獲取正在運行線程信息;
3.查詢獲取桌面信息;
4.查詢獲取環(huán)境變量信息;
5.查詢獲取驅(qū)動信息;
6.查詢獲取文件夾信息;
7.查詢獲取系統(tǒng)信息和系統(tǒng)服務;
8.查詢獲取硬件信息;
9.查詢獲取磁盤相關(guān)信息。
5.WMI相關(guān)概念
1.WBEM它的全稱:Web Based Enterprise Management(基于web的企業(yè)管理),它是一種行業(yè)規(guī)范,建立在企業(yè)網(wǎng)絡(luò)中訪問和共享管理信息的標準。
2.WMI它的全稱:Windows Management Instrumentation(Windows管理工具),它是WBEM的Windows實現(xiàn),也就是它要遵守WBEM規(guī)則。通過WMI,我們可以獲取關(guān)于硬件和軟件的相關(guān)數(shù)據(jù),也可以提供關(guān)于硬件或軟件服務的數(shù)據(jù)給WMI。
3.COM 它的全稱:Component Object Model(組件對象模型),它是由微軟推出的一套接口規(guī)范,通過設(shè)定不同組件之間需要遵守的標準與協(xié)議,主要用來跨語言、跨進程之間的模塊通信。
6.WMI相關(guān)函數(shù)
1.CoInitializeEx函數(shù)詳解
5.ExecNotificationQuery函數(shù)詳解
7.WMI架構(gòu)解析
下圖的WMI架構(gòu)圖來源于MSDN,我們可以從架構(gòu)圖中很清晰的看到WMI主要分為3的層結(jié)構(gòu)。
1.WMI providersand Managed object(WMI提供者和管理對象)
WMI提供者是一個監(jiān)控一個或者多個的托管對象的COM接口。
托管對象是指邏輯或者物理組件,例如硬盤驅(qū)動器、網(wǎng)絡(luò)適配器、數(shù)據(jù)庫系統(tǒng)、操作系統(tǒng)、進程或者服務。
WMI提供者通過托管對象提供的數(shù)據(jù)向WMI服務提供數(shù)據(jù),同時將WMI服務的請求傳遞給托管對象。
WMI提供者是由實現(xiàn)邏輯的DLL和承載著描述數(shù)據(jù)和操作的類的托管對象格式MOF(Managed Object Format)文件組成。其中這個兩個文件都保存在\Windows\System32\wbem目錄下。
2.WMI Infrastructure(WMI基礎(chǔ)結(jié)構(gòu))
WMI的基礎(chǔ)結(jié)構(gòu)是Windows系統(tǒng)的系統(tǒng)組件。它主要包含兩個模塊:包含WMI Core(WMI核心)的WMI Service(WMI服務)和WMI Repository(WMI存儲庫)。
WMI存儲庫是通過WMI Namespace(WMI命名空間)組織起來的。在系統(tǒng)啟動時,WMI服務會創(chuàng)建例如root\cimv2、root\default、root\subscription等等命名空間。
WMI服務扮演著WMi提供者、管理應用和WMI存儲庫之間的協(xié)調(diào)者角色。一般來說,它是通過一個共享的服務進程svchost來實施工作的。當?shù)谝粋€管理應用向WMI命名空間發(fā)起連接時,WMI服務將會啟動。當管理應用不再調(diào)用WMI時,WMI服務將會關(guān)閉或者進入低內(nèi)存狀態(tài)。
3.WMI Consumers(WMI使用者)
它位于WMI構(gòu)架的最頂層,它是WMI技術(shù)使用的載體。對于使用C++代碼實現(xiàn)我們就可以直接通過COM技術(shù)直接與下層進行通信。對于.net平臺語言,則要使用System.Management域相關(guān)功能與下層進行通信。WMI的使用者,可以進行查詢、枚舉數(shù)據(jù),也可以運行Provider的方法,還可以向WMI訂閱消息。其中這些數(shù)據(jù)操作都是要有相應的Provider來提供。
總結(jié)
以上是生活随笔為你收集整理的一文带你掌握监控进程技术实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openwrt运行n2n服务器,Wind
- 下一篇: jQuery图片播放插件ColorBox