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