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