目前已知在殺毒廠商以及游戲廠商的安全對抗過程中,常常需要準確的監(jiān)控收集并進行檢測用戶創(chuàng)建打開的EXE應用程序是否是安全的。同時也可以將此技術應用于其他應用的安全對抗方案中。那么如何去準確的監(jiān)控和收集用戶每次點擊打開的EXE應用程序信息呢?接下來我就進行還原實現(xiàn)下如何準確的監(jiān)控并收集用戶每次點擊打開EXE應用程序技術。
下圖展示的是開啟監(jiān)控程序,這是進行監(jiān)控電腦上包括系統(tǒng)自啟動EXE程序以及用戶主動點擊啟動應用程序的信息。
實現(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"服務器。4. 通過調(diào)用CoSetProxyBlanket函數(shù),進行設置 IWbemServices的代理,目的是為了WMI 服務能夠模擬客戶端角色。5.通過調(diào)用 ExecNotificationQuery函數(shù), 來進行查詢接收事件。下圖這部分代碼主要的目的是為了初始化COM和WMI的設置。下面代碼主要實現(xiàn)查詢接收事件,也就是通過ExecNotificationQuery查詢來循環(huán)獲取用戶所創(chuàng)建打開的所有EXE的數(shù)據(jù)。
概述:WMI技術算得上是一個很古老的技術,它是由微軟提供的,同時也是一種非??煽康慕鉀Q方案。WMI它還有一個非常大的優(yōu)勢,可以進行訪問遠程電腦。它是Windows操作系統(tǒng)中管理數(shù)據(jù)和操作的基礎模塊,它提供了一個通過操作系統(tǒng)、網(wǎng)絡和企業(yè)環(huán)境去管理本地或遠程計算機的統(tǒng)一接口集。查詢獲取正在運行進程信息;
查詢獲取正在運行線程信息;
查詢獲取桌面信息;
查詢獲取環(huán)境變量信息;
查詢獲取驅(qū)動信息;
查詢獲取文件夾信息;
查詢獲取系統(tǒng)信息和系統(tǒng)服務;
查詢獲取硬件信息;
查詢獲取磁盤相關信息。
---
1.WBEM它的全稱:Web Based Enterprise Management(基于web的企業(yè)管理),它是一種行業(yè)規(guī)范,建立在企業(yè)網(wǎng)絡中訪問和共享管理信息的標準。2.WMI它的全稱:Windows Management Instrumentation(Windows管理工具),它是WBEM的Windows實現(xiàn),也就是它要遵守WBEM規(guī)則。通過WMI,我們可以獲取關于硬件和軟件的相關數(shù)據(jù),也可以提供關于硬件或軟件服務的數(shù)據(jù)給WMI。3.COM 它的全稱:Component Object Model(組件對象模型),它是由微軟推出的一套接口規(guī)范,通過設定不同組件之間需要遵守的標準與協(xié)議,主要用來跨語言、跨進程之間的模塊通信。
1.CoInitializeEx函數(shù)詳解2. CoCreateInstance函數(shù)詳解3. ConnectServer函數(shù)詳解4. CoSetProxyBlanket函數(shù)詳解5.ExecNotificationQuery函數(shù)詳解
下圖的WMI架構(gòu)圖來源于MSDN,我們可以從架構(gòu)圖中很清晰的看到WMI主要分為3的層結(jié)構(gòu)。1.WMI providersand Managed object(WMI提供者和管理對象)
WMI提供者是一個監(jiān)控一個或者多個的托管對象的COM接口。
托管對象是指邏輯或者物理組件,例如硬盤驅(qū)動器、網(wǎng)絡適配器、數(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基礎結(jié)構(gòu))WMI的基礎結(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服務將會關閉或者進入低內(nèi)存狀態(tài)。 它位于WMI構(gòu)架的最頂層,它是WMI技術使用的載體。對于使用C++代碼實現(xiàn)我們就可以直接通過COM技術直接與下層進行通信。對于.net平臺語言,則要使用System.Management域相關功能與下層進行通信。WMI的使用者,可以進行查詢、枚舉數(shù)據(jù),也可以運行Provider的方法,還可以向WMI訂閱消息。其中這些數(shù)據(jù)操作都是要有相應的Provider來提供。
推薦一個公眾號里有各種各樣的破姐應用、效率神器、學習資料以及各種漢化游戲,讓你完全不花一分錢就能體會到市面上各種SVIP的待遇,保證讓你能有一番全新的黑科技體驗,在他的公眾號中,所有應用、游戲、各種資源全都可以直接免費下載,絕對沒有任何套路?。。?/span>
