用戶注冊表文件進行解析,獲取所述來賓虛擬機中安裝在用戶下的軟件信息。
[0053]舉例來說,所述安裝在用戶下的軟件信息可以包括:數字簽名、谷歌Chrome瀏覽器等信息。
[0054]在具體應用中,在所述步驟105中,可以采用HIVE巢狀數據結構算法,對所述用戶注冊表文件進行解析,獲取所述來賓虛擬機中安裝在用戶下的軟件信息。
[0055]可理解的是,該HIVE巢狀數據結構算法本領域技術人員可以自己實現,也可以使用現有的算法來實現。
[0056]在具體應用中,本實施例所述方法,還可以包括圖中未示出的步驟106-108:
[0057]106、掃描所述虛擬磁盤,獲取所述來賓虛擬機中的應用程序信息。
[0058]107、排除所述應用程序信息中所述來賓虛擬機操作系統自身包括的應用程序信息。
[0059]108、將排除后的應用程序信息與所述安裝在系統下的軟件信息和所述安裝在用戶下的軟件信息進行比對,獲取所述來賓虛擬機中的綠色軟件信息。
[0060]在具體應用中,本實施例所述來賓虛擬機可以為Windows虛擬機,但本實施例并不對其進行限制,所述來賓虛擬機也可以為其他操作系統虛擬機。
[0061]本實施例的無代理來賓虛擬機已安裝軟件檢測方法,在虛擬化平臺上搭建一個Linux虛擬機,將被檢測的Windows虛擬機掛載在Linux虛擬機上,所有的檢測操作都是在Linux中完成,被檢測的系統僅僅相當于一個鏡像磁盤,里邊的待檢測軟件處于非運行狀態,能夠避免被檢測軟件本身的自我防護機制、用戶人為因素和被檢測來賓虛擬機操作系統運行狀態的干擾,在被檢測來賓虛擬機操作系統內部無代理客戶端,全面、準確、有效的檢測來賓虛擬機所安裝軟件的詳細信息。
[0062]本方法有益于快速在虛擬化平臺上部署,可以快速,高效,準確,無感知的檢測虛擬系統的軟件安裝情況,和虛擬機是否啟動無關;不用在被檢測系統中布置客戶端程序,在檢測過程中,不占用被檢測系統資源,對用戶使用過程無影響;如果在配合企業可信軟件列表,可以快速統計出用戶所安裝的違規軟件,節省客戶資源,保護客戶數據。
[0063]舉例來說,以所述來賓虛擬機為Windows虛擬機為例進行說明,其中,所述系統注冊表文件為SOFTWARE文件,所述用戶注冊表文件為NTUSER.DAT,本實施例所述無代理來賓虛擬機已安裝軟件檢測方法,可以包括:
[0064]S1、將待檢測的來賓虛擬機的操作系統鏡像文件掛載到預先建立的Linux虛擬機中,并將所述操作系統鏡像文件映射為所述Linux虛擬機操作系統中的一個虛擬磁盤。
[0065]S2、在掛載的虛擬磁盤中找到Windows系統分區,將“C: \Windows\System32\config”目錄轉換為linux目錄。
[0066]S3、在“config”目錄中,用HIVE巢狀數據結構算法將SOFTWARE文件解析出來。
[0067]S4、在解析出來的SOFTWARE文件中枚舉注冊表項:
[0068]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ffindows\CurrentVers1n\Uninstall ;
[0069]HKEY_L0CAL_MACHINE\S0FTWARE\ffow6432Node\Microsoft\ffindows\CurrentVers1n\Uninstall ;
[0070]在枚舉出來的項里分別讀取UninstallString、SystemComponent 和 DisplayName的鍵值,根據讀取出來的值進行判斷是否為軟件,并進行統計,即可獲取所述來賓虛擬機中安裝在系統下的軟件信息。
[0071]S5、在掛載的虛擬磁盤中找到Windows系統分區,將“C:\Users\{用戶}”目錄轉換為linux目錄。
[0072]S6、在“ {用戶} “目錄中,用HIVE巢狀數據結構算法將NTUSER.DAT文件解析出來。
[0073]S7、在解析出來的NTUSER.DAT文件中枚舉注冊表項:
[0074]HKEY_USERS\{用戶}\Software\Microsoft\Windows\CurrentVers1n\Uninstall
[0075]在枚舉出來的項里分別讀取UninstallString、SystemComponent 和 DisplayName的鍵值,根據讀取出來的值進行判斷是否為軟件,并進行統計,即可獲取所述來賓虛擬機中安裝在用戶下的軟件信息。
[0076]可選地,在所述來賓虛擬機為Windows虛擬機時,本實施例所述無代理來賓虛擬機已安裝軟件檢測方法,還可以包括:
[0077]S8、掃描遍歷所述虛擬磁盤,根據后綴找到所有包含exe程序的最后一層目錄,獲取所述來賓虛擬機中的exe程序(在非系統目錄中(如Windows,system32等),默認同一個文件夾為同一個軟件);
[0078]S9、讀取所述exe程序的數字簽名信息,排除微軟的數字簽名;
[0079]S10、讀取剩余exe程序的內部名稱,作為軟件的名稱和上述步驟S4獲取的安裝在系統下的軟件信息和步驟S7中獲取的安裝在用戶下的軟件信息進行比對,排除已安裝軟件,剩余為綠色軟件。
[0080]本實施例的無代理來賓虛擬機已安裝軟件檢測方法,能夠避免被檢測軟件本身的自我防護機制、用戶人為因素和被檢測來賓虛擬機操作系統運行狀態的干擾,在被檢測來賓虛擬機操作系統內部無代理客戶端,全面、準確、有效的檢測來賓虛擬機所安裝軟件的詳細信息。
[0081]圖2示出了本發明一實施例提供的一種無代理來賓虛擬機已安裝軟件檢測裝置的結構示意圖,如圖3所示,本實施例的無代理來賓虛擬機已安裝軟件檢測裝置,包括:掛載模塊21、第一獲取模塊22、第一解析模塊23、第二獲取模塊24和第二解析模塊25 ;
[0082]掛載模塊21,用于將待檢測的來賓虛擬機的操作系統鏡像文件掛載到預先建立的Linux虛擬機中,并將所述操作系統鏡像文件映射為所述Linux虛擬機操作系統中的一個虛擬磁盤;
[0083]第一獲取模塊22,用于獲取所述虛擬磁盤中的系統注冊表文件;
[0084]第一解析模塊23,用于對所述系統注冊表文件進行解析,獲取所述來賓虛擬機中安裝在系統下的軟件信息;
[0085]第二獲取模塊24,用于獲取所述虛擬磁盤中的用戶注冊表文件;
[0086]第二解析模塊25,用于對所述用戶注冊表文件進行解析,獲取所述來賓虛擬機中安裝在用戶下的軟件信息。
[0087]在具體應用中,本實施例所述第一解析模塊23,可具體用于
[0088]采用HIVE巢狀數據結構算法,對所述系統注冊表文件進行解析,獲取所述來賓虛擬機中安裝在系統下的軟件信息。
[0089]在具體應用中,本實施例所述第二解析模塊25,可具體用于
[0090]采用HIVE巢狀數據結構算法,對所述用戶注冊表文件進行解析,獲取所述來賓虛擬機中安裝在用戶下的軟件信息。
[0091]在具體應用中,本實施例所述裝置,還可以包括圖中未示出的:
[0092]第三獲取模塊,用于掃描所述虛擬磁盤,獲取所述來賓虛擬機中的應用程序信息;
[0093]排除模塊,用于排除所述應用程序信息中所述來賓虛擬機操作系統自身包括的應用程序信息;
[0094]比對模塊,用于將排除后的應用程序信息與所述安裝在系統下的軟件信息和所述安裝在用戶下的軟件信息進行比對,獲取所述來賓虛擬機中的綠色軟件信息。
[0095]在具體應用中,本實施例所述來賓虛擬機可以為Windows