技術(shù)領(lǐng)域
[0001] 本
發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種對(duì)軟件的去捆綁處理方法及系統(tǒng)。
背景技術(shù)
[0002] 當(dāng)前軟件廠家為了一定的利益,經(jīng)常會(huì)在軟件安裝過程中通過捆綁安裝其他軟件的方式來達(dá)到軟件推廣以及提高用戶數(shù)量的目的。對(duì)于廣大的普通用戶來說,在安裝過程中通常并不會(huì)去仔細(xì)閱讀理解被勾選選項(xiàng)的內(nèi)容,這樣,當(dāng)用戶因需要某款軟件而進(jìn)行安裝之后,往往會(huì)發(fā)現(xiàn),待軟件安裝完成后,除了該款用戶需要的軟件之外,還多了一些其他的新安裝的軟件,這些其他的新安裝的軟件是用戶并不需要也不想安裝的,因此,稱為捆綁軟件。
[0003] 對(duì)于這類捆綁軟件,部分用戶會(huì)尋找不同的方法進(jìn)行卸載,但更多的用戶是置若罔聞。無論用戶如何處理,這些捆綁軟件都會(huì)給用戶帶來很多困擾:當(dāng)用戶尋找不同的方法進(jìn)行卸載時(shí),勢(shì)必會(huì)浪
費(fèi)用戶的時(shí)間和精
力;當(dāng)用戶置若罔聞時(shí),用戶的計(jì)算機(jī)由于安裝了捆綁軟件,日積月累,捆綁軟件的數(shù)量越來越多,會(huì)占用大量的資源,導(dǎo)致用戶的計(jì)算機(jī)響應(yīng)緩慢,性能下降,由此為用戶帶來更加深遠(yuǎn)的影響。
[0004] 目前,
現(xiàn)有技術(shù)主要是利用當(dāng)某路徑的程序文件名符合規(guī)則且父
進(jìn)程為
指定的名稱時(shí),直接攔截軟件的方法,該方法無法確定被攔截的是什么軟件,只能提示進(jìn)程名之類的東西,針對(duì)性不強(qiáng),誤攔截幾率高。
發(fā)明內(nèi)容
[0005] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的對(duì)軟件的去捆綁處理方法和相應(yīng)的去捆綁處理系統(tǒng)。
[0006] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種對(duì)軟件的去捆綁處理方法,包括:
[0007] 當(dāng)捕獲到對(duì)第一軟件的操作時(shí),獲取所述第一軟件的特征值,進(jìn)而獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表;
[0008] 對(duì)所述第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)所述第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則抓取所述第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;
[0009] 根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。
[0010] 可選地,所述捕獲對(duì)第一軟件的操作具體為:捕獲對(duì)所述第一軟件的安裝操作。
[0011] 可選地,所述根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理進(jìn)一步包括:
[0012] 根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取所述一個(gè)或多個(gè)捆綁子體的軟件特征信息;
[0013] 展現(xiàn)提示界面,所述提示界面中顯示有所述一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0014] 可選地,所述根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理進(jìn)一步包括:
[0015] 獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí);
[0016] 若所述第二軟件的捆綁標(biāo)識(shí)與所述一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)符合,則攔截所述第二軟件的啟動(dòng)安裝操作。
[0017] 可選地,所述獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí)進(jìn)一步包括:
[0018] 獲取所述第二軟件的特征值,進(jìn)而獲取根據(jù)所述第二軟件的特征值而得到的所述第二軟件的軟件信息列表;
[0019] 對(duì)所述第二軟件的軟件信息列表進(jìn)行解析,得到所述第二軟件的捆綁標(biāo)識(shí)。
[0020] 可選地,在所述獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表之前還包括:
[0021] 獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;
[0022] 為所述第一軟件以及所述一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;
[0023] 將所述第一軟件的捆綁標(biāo)識(shí)添加到所述第一軟件的軟件信息列表中。
[0024] 可選地,所述獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體進(jìn)一步包括:
[0025] 在多個(gè)用戶設(shè)備上分別運(yùn)行第一軟件安裝包,統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)所述變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0026] 可選地,所述獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體進(jìn)一步包括:
[0027] 在至少一個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包;
[0028] 監(jiān)控第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有
子進(jìn)程;
[0029] 根據(jù)監(jiān)控過程中檢測(cè)到的特定的創(chuàng)建行為,獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0030] 可選地,所述獲取所述第一軟件的特征值進(jìn)一步包括:
[0031] 獲取所述第一軟件的下面信息的一項(xiàng)或多項(xiàng):
父進(jìn)程路徑、進(jìn)程啟動(dòng)命令行、父父進(jìn)程路徑、程序簽名公司、父進(jìn)程程序簽名公司;
[0032] 利用哈希
算法,根據(jù)獲取的所述第一軟件的信息計(jì)算所述第一軟件的特征值。
[0033] 根據(jù)本發(fā)明的另一方面,提供了一種對(duì)軟件的去捆綁處理系統(tǒng),包括:
[0034] 捕獲模
塊,適于捕獲對(duì)第一軟件的操作;
[0035] 第一獲取模塊,適于當(dāng)所述捕獲模塊捕獲到對(duì)第一軟件的操作時(shí),獲取所述第一軟件的特征值,進(jìn)而獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表;
[0036] 解析模塊,適于對(duì)所述第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)所述第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí);
[0037] 第一抓取模塊,適于在所述解析模塊檢測(cè)出所述第一軟件的軟件信息列表中包含第一軟件的捆綁標(biāo)識(shí)的情況下,抓取所述第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;
[0038] 處理模塊,適于根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。
[0039] 可選地,所述捕獲模塊具體適于:捕獲對(duì)所述第一軟件的安裝操作。
[0040] 可選地,所述處理模塊包括:
[0041] 第二抓取模塊,適于根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取所述一個(gè)或多個(gè)捆綁子體的軟件特征信息;
[0042] 展現(xiàn)模塊,適于展現(xiàn)提示界面,所述提示界面中顯示有所述一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0043] 可選地,所述處理模塊包括:
[0044] 第二獲取模塊,適于獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí);
[0045] 攔截模塊,適于若所述第二軟件的捆綁標(biāo)識(shí)與所述一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)符合,則攔截所述第二軟件的啟動(dòng)安裝操作。
[0046] 可選地,所述第二獲取模塊進(jìn)一步適于:獲取所述第二軟件的特征值進(jìn)而獲取根據(jù)所述第二軟件的特征值而得到的所述第二軟件的軟件信息列表;對(duì)所述第二軟件的軟件信息列表進(jìn)行解析,得到所述第二軟件的捆綁標(biāo)識(shí)。
[0047] 可選地,所述系統(tǒng)還包括:
[0048] 第三獲取模塊,適于獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;
[0049] 分配模塊,適于為所述第一軟件以及所述一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;
[0050] 添加模塊,適于將所述第一軟件的捆綁標(biāo)識(shí)添加到所述第一軟件的軟件信息列表中。
[0051] 可選地,所述第三獲取模塊具體適于:統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)所述變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0052] 可選地,所述第三獲取模塊具體適于:監(jiān)控在至少一個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包時(shí)的第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有子進(jìn)程;根據(jù)監(jiān)控過程中檢測(cè)到的特定的創(chuàng)建行為,獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0053] 可選地,所述第一獲取模塊進(jìn)一步適于:
[0054] 獲取所述第一軟件的下面信息的一項(xiàng)或多項(xiàng):父進(jìn)程路徑、進(jìn)程啟動(dòng)命令行、父父進(jìn)程路徑、程序簽名公司、父進(jìn)程程序簽名公司;
[0055] 利用
哈希算法,根據(jù)獲取的所述第一軟件的信息計(jì)算所述第一軟件的特征值。
[0056] 根據(jù)本發(fā)明的對(duì)軟件的去捆綁處理方法及系統(tǒng),當(dāng)捕獲到對(duì)第一軟件的操作時(shí),獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表;對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。利用本發(fā)明,根據(jù)捆綁標(biāo)識(shí)對(duì)軟件進(jìn)行去捆綁處理,攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,針對(duì)性強(qiáng),降低了誤攔截率。
[0057] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照
說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
[0058] 通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0059] 圖1示出了根據(jù)本發(fā)明一個(gè)
實(shí)施例的對(duì)軟件的去捆綁處理方法的
流程圖;
[0060] 圖2示出了本發(fā)明一個(gè)實(shí)施例的
服務(wù)器端預(yù)準(zhǔn)備過程的流程圖;
[0061] 圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理方法的流程圖;
[0062] 圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理方法的流程圖;
[0063] 圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0064] 圖6是根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0065] 圖7是根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
[0066] 下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0067] 圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理方法的流程圖。如圖1所示,該方法包括如下步驟:
[0068] 步驟S110,當(dāng)捕獲到對(duì)第一軟件的操作時(shí),獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表。
[0069] 在用戶運(yùn)行第一軟件后,獲取當(dāng)前運(yùn)行的進(jìn)程列表,然后查看是否存在第一軟件的進(jìn)程名。若當(dāng)前運(yùn)行的進(jìn)程列表中存在第一軟件的進(jìn)程名,則捕獲到對(duì)第一軟件的操作。
[0070] 可選地,第一軟件的特征值是利用哈希算法根據(jù)第一軟件的信息計(jì)算得到的。具體的可以采用MD5或sha1算法進(jìn)行計(jì)算。一種可選的方式是將利用哈希算法計(jì)算得到的第一軟件的特征值發(fā)送至服務(wù)器,服務(wù)器根據(jù)第一軟件的特征值查詢相應(yīng)的
數(shù)據(jù)庫(kù)(該數(shù)據(jù)庫(kù)也可以放在客戶端本地,如果放在客戶端本地的話就不需要將特征值發(fā)送給服務(wù)器了,直接在本地查詢即可),返回與第一軟件的特征值對(duì)應(yīng)的第一軟件的軟件信息列表。該軟件信息列表可以包含捆綁標(biāo)識(shí)、軟件版本號(hào)、軟件發(fā)行商等軟件的描述信息。
[0071] 步驟S120,對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含則執(zhí)行步驟S130,若否則執(zhí)行步驟S140。
[0072] 軟件信息列表除了包含捆綁標(biāo)識(shí)之外,還可包含軟件版本號(hào)、軟件發(fā)行商等軟件的其它描述信息。捆綁標(biāo)識(shí)主要用于體現(xiàn)第一軟件是否捆綁有其他軟件。
[0073] 步驟S130,抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表,跳轉(zhuǎn)步驟S150。
[0074] 捆綁列表體現(xiàn)軟件之間的捆綁關(guān)系。
[0075] 步驟S140,未發(fā)現(xiàn)第一軟件的捆綁子體,執(zhí)行第一軟件的安裝,方法結(jié)束。
[0076] 捆綁子體即與第一軟件有捆綁關(guān)系的軟件,該步驟中的未發(fā)現(xiàn)第一軟件的捆綁子體說明第一軟件沒有捆綁有其他軟件,則可以執(zhí)行第一軟件的安裝。
[0077] 步驟S150,根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理,方法結(jié)束。
[0078] 根據(jù)本發(fā)明上述實(shí)施例提供的方法,當(dāng)捕獲到對(duì)第一軟件的操作時(shí),獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表;對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。利用該方法,根據(jù)捆綁標(biāo)識(shí)對(duì)軟件進(jìn)行去捆綁處理,攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,針對(duì)性強(qiáng),降低了誤攔截率。
[0079] 上述實(shí)施例提供的可以是客戶端在捕獲到對(duì)第一軟件的操作時(shí)所做的去捆綁處理過程。在客戶端進(jìn)行去捆綁處理之前,服務(wù)器端需要完成對(duì)應(yīng)的預(yù)準(zhǔn)備過程。圖2示出了本發(fā)明一個(gè)實(shí)施例的服務(wù)器端預(yù)準(zhǔn)備過程的流程圖。如圖2所示,該預(yù)準(zhǔn)備過程主要包括如下步驟:
[0080] 步驟S210,服務(wù)器獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0081] 作為向成千上萬客戶端提供服務(wù)的設(shè)備,服務(wù)器可以通過多種方法獲取軟件的綁定關(guān)系。作為示例,本發(fā)明在此給出兩種具體的方法:
[0082] 方法一,在多個(gè)用戶設(shè)備上分別運(yùn)行第一軟件安裝包,統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。這里的用戶設(shè)備可以是指除執(zhí)行本發(fā)明去捆綁處理方法的客戶端以外的其它客戶端,也可以是指服務(wù)端提供的測(cè)試設(shè)備,本發(fā)明對(duì)此不做限制。
[0083] 具體地,在多個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包前,對(duì)各個(gè)用戶設(shè)備中已安裝的軟件列表進(jìn)行第一次檢測(cè);在各個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包的過程中,對(duì)第一軟件的進(jìn)程以及第一軟件的所有子進(jìn)程進(jìn)行監(jiān)控;等待第一軟件的進(jìn)程以及第一軟件的所有子進(jìn)程退出后,對(duì)各個(gè)用戶設(shè)備中已安裝的軟件列表進(jìn)行第二次檢測(cè);統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0084] 舉例來說,在用戶設(shè)備1上運(yùn)行軟件A的安裝包前,檢測(cè)該用戶設(shè)備1中所有已經(jīng)安裝的軟件列表,然后運(yùn)行軟件A的安裝包,在運(yùn)行軟件A安裝包的過程中,對(duì)軟件A的進(jìn)程以及軟件A的所有子進(jìn)程進(jìn)行監(jiān)控;等待軟件A的進(jìn)程以及軟件A的所有子進(jìn)程退出或超過5分鐘后,檢測(cè)用戶設(shè)備1中所有已安裝的軟件列表,得到用戶設(shè)備1上軟件A的安裝包運(yùn)行前后已安裝的軟件列表的變化,用戶設(shè)備1中多出了B、C、D三款軟件。利用上述方法檢測(cè)用戶設(shè)備2、用戶設(shè)備3、用戶設(shè)備4、用戶設(shè)備5、用戶設(shè)備6在運(yùn)行軟件A的安裝包前后設(shè)備上軟件列表的變化,得到用戶設(shè)備2上多出了B、C、D、E四款軟件;用戶設(shè)備3上多出了C、D、E、F四款軟件;用戶設(shè)備4上多出了B、C、D、F四款軟件;用戶設(shè)備5上多出了B、C、D、G四款軟件;用戶設(shè)備6上多出了B、C、D、E四款軟件。對(duì)各用戶設(shè)備上多出的軟件進(jìn)行重復(fù)計(jì)數(shù),得到所有重復(fù)數(shù)量超過用戶數(shù)的設(shè)定
閾值(如50%)的軟件,則B、C、D、E為軟件A的捆綁軟件。
[0085] 方法二,在至少一個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包;監(jiān)控第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有子進(jìn)程;根據(jù)監(jiān)控過程中檢測(cè)到的特定的創(chuàng)建行為,獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0086] 舉例來說,在某用戶設(shè)備上運(yùn)行軟件A的安裝包,在運(yùn)行軟件A的安裝包的過程中,對(duì)第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有子進(jìn)程進(jìn)行監(jiān)控,檢測(cè)到在軟件A安裝過程中啟動(dòng)了1.exe,創(chuàng)建了注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\U?ninstall\Fiddler2,而該注冊(cè)表項(xiàng)為軟件Fiddler2的特征,則認(rèn)為軟件A捆綁了Fiddler2這款軟件;還檢測(cè)到在軟件A安裝過程中啟動(dòng)了進(jìn)程2.exe,創(chuàng)建了文件:C:\Documents?and?Settings\All?Users\「開始」菜單\程序\中國(guó)移動(dòng)飛信\飛信2013.lnk,這個(gè)文件為"飛信"的特征,則認(rèn)為軟件A捆綁了"飛信"這款軟件。
[0087] 步驟S220,服務(wù)器為第一軟件以及一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表。
[0088] 在步驟S210之后,服務(wù)器得到軟件A的捆綁子體為軟件B、C、D、E,為軟件A以及其捆綁子體分別分配捆綁標(biāo)識(shí)ID:1、ID:2、ID:3、ID:4、ID:5,建立軟件A的捆綁列表1->2,3,4,5。
[0089] 步驟S230,服務(wù)器將第一軟件的捆綁標(biāo)識(shí)添加到第一軟件的軟件信息列表中。
[0090] 將在步驟S220中分配的捆綁標(biāo)識(shí)ID:1添加到軟件A的軟件信息列表中。軟件A的軟件信息列表除了包含捆綁標(biāo)識(shí)之外,還可包含軟件版本號(hào)、軟件發(fā)行商等軟件的其它描述信息。舉例來說,軟件A為QQ2013,則軟件A的軟件信息列表為:ID:1、QQ2013正式版SP6(9305)、騰訊公司。
[0091] 在服務(wù)器端完成上述預(yù)準(zhǔn)備過程(當(dāng)然,該過程也可以在客戶端進(jìn)行)之后,客戶端可以進(jìn)行去捆綁處理過程,下面給出了兩個(gè)具體的實(shí)施例。
[0092] 圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理方法的流程圖。如圖3所示,該方法包括如下步驟:
[0093] 步驟S310,客戶端捕獲到對(duì)第一軟件的安裝操作。
[0094] 在用戶運(yùn)行第一軟件A的安裝包后,獲取當(dāng)前運(yùn)行的進(jìn)程列表,然后查看是否存在第一軟件A的進(jìn)程名。若當(dāng)前運(yùn)行的進(jìn)程列表中存在第一軟件A的進(jìn)程名,則捕獲到對(duì)第一軟件A的安裝操作。
[0095] 步驟S320,客戶端獲取第一軟件的特征值。
[0096] 客戶端獲取第一軟件A的如下信息的一項(xiàng)或多項(xiàng):父進(jìn)程路徑、進(jìn)程啟動(dòng)命令行、父父進(jìn)程路徑、程序簽名公司、父進(jìn)程程序簽名公司,利用哈希算法,根據(jù)獲取的第一軟件A的上述信息計(jì)算第一軟件A的特征值。具體的可以采用MD5或sha1算法進(jìn)行計(jì)算,計(jì)算出的特征值對(duì)于第一軟件A來說是唯一的。
[0097] 步驟S330,客戶端獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表。
[0098] 客戶端將第一軟件A的特征值發(fā)送給服務(wù)器,以獲取服務(wù)器在步驟S230中得到的軟件信息列表(該軟件信息列表也可以存放在客戶端本地)。
[0099] 步驟S340,客戶端對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含則執(zhí)行步驟S350,若否則執(zhí)行步驟S360。
[0100] 具體地,客戶端從服務(wù)器側(cè)獲得第一軟件的軟件信息列表后,對(duì)其進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含步驟S220中為第一軟件分配的捆綁標(biāo)識(shí)ID:1。
[0101] 步驟S350,客戶端抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表,跳轉(zhuǎn)步驟S370。
[0102] 客戶端從服務(wù)器側(cè)抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表,1->2,3,4,5。
[0103] 步驟S360,未發(fā)現(xiàn)第一軟件的捆綁子體,客戶端執(zhí)行第一軟件的安裝,方法結(jié)束。
[0104] 步驟S370,客戶端根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0105] 客戶端根據(jù)步驟S350中抓取的捆綁列表中包含的捆綁標(biāo)識(shí)2、3、4、5,從服務(wù)器端抓取捆綁標(biāo)識(shí)分別為2、3、4、5捆綁子體的軟件特征信息,服務(wù)器存儲(chǔ)的軟件特征信息包括軟件的名稱、圖標(biāo)、公司等信息。
[0106] 步驟S380,客戶端展現(xiàn)提示界面,提示界面中顯示有一個(gè)或多個(gè)捆綁子體的軟件特征信息,方法結(jié)束。
[0107] 根據(jù)本發(fā)明上述實(shí)施例提供的方法,服務(wù)器端首先獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;為第一軟件以及一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;將第一軟件的捆綁標(biāo)識(shí)添加到第一軟件的軟件信息列表中。當(dāng)客戶端捕獲到對(duì)第一軟件的安裝操作時(shí),獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表;對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取一個(gè)或多個(gè)捆綁子體的軟件特征信息;展現(xiàn)提示界面,提示界面中顯示有一個(gè)或多個(gè)捆綁子體的軟件特征信息。利用該方法,用戶可以根據(jù)提示界面中顯示的軟件特征信息有針對(duì)性地對(duì)所捆綁的軟件進(jìn)行去捆綁處理,攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,提高了攔截率。
[0108] 圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理方法的流程圖。上述圖3所示的實(shí)施例在檢測(cè)到捆綁子體時(shí),僅僅向用戶展現(xiàn)提示界面;圖4所示的實(shí)施例與圖3所示的實(shí)施例的不同之處在于,該方法直接根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),對(duì)啟動(dòng)安裝的捆綁子體進(jìn)行攔截。具體地,該方法包括如下步驟:
[0109] 步驟S400,客戶端捕獲到對(duì)第一軟件的安裝操作。
[0110] 步驟S410,客戶端獲取第一軟件的特征值。
[0111] 步驟S420,客戶端獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表。
[0112] 步驟S430,客戶端對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含則執(zhí)行步驟S440,若否則執(zhí)行步驟S450。
[0113] 步驟S440,客戶端抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表,從而獲取與第一軟件綁定安裝的多個(gè)捆綁子體的捆綁標(biāo)識(shí),跳轉(zhuǎn)步驟S460。
[0114] 步驟S450,未發(fā)現(xiàn)第一軟件的捆綁子體,客戶端執(zhí)行第一軟件的安裝,方法結(jié)束。
[0115] 上述步驟S400-步驟S450的具體執(zhí)行方式與圖3所示實(shí)施例的步驟S310-S360相同,在此不再贅述。
[0116] 步驟S460,客戶端獲取第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí)。
[0117] 客戶端獲取第二軟件的捆綁標(biāo)識(shí)的方法可以與獲取第一軟件的捆綁標(biāo)識(shí)的方法相同。具體地,客戶端首先獲取第二軟件的特征值,進(jìn)而獲取服務(wù)器根據(jù)第二軟件的特征值而返回的第二軟件的軟件信息列表,客戶端對(duì)第二軟件的軟件信息列表進(jìn)行解析,得到第二軟件的捆綁標(biāo)識(shí)。
[0118] 步驟S470,客戶端比較第二軟件的捆綁標(biāo)識(shí)與步驟S440所獲取的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)是否符合,若是,則執(zhí)行步驟S480;否則執(zhí)行步驟S490。
[0119] 步驟S480,攔截第二軟件的啟動(dòng)安裝操作,方法結(jié)束。
[0120] 步驟S490,執(zhí)行第二軟件的安裝,方法結(jié)束。
[0121] 根據(jù)本發(fā)明上述實(shí)施例提供的方法,通過判斷第二軟件的捆綁標(biāo)識(shí)與一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)是否符合,若符合則攔截第二軟件的啟動(dòng)安裝操作,本方法更為直接的攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,提高了攔截的準(zhǔn)確性,降低了誤攔截率。
[0122] 圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,該系統(tǒng)包括:捕獲模塊510、第一獲取模塊520、解析模塊530、第一抓取模塊540、處理模塊550。
[0123] 捕獲模塊510,適于捕獲對(duì)第一軟件的操作。
[0124] 第一獲取模塊520,適于獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表。
[0125] 解析模塊530,適于對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí)。
[0126] 第一抓取模塊540,適于在解析模塊檢測(cè)出第一軟件的軟件信息列表中包含第一軟件的捆綁標(biāo)識(shí)的情況下,抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表。
[0127] 處理模塊550,適于根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。
[0128] 根據(jù)本發(fā)明上述實(shí)施例提供的系統(tǒng),當(dāng)捕獲模塊到對(duì)第一軟件的操作時(shí),第一獲取模塊獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表;解析模塊對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則第一抓取模塊抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;處理模塊根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。利用該系統(tǒng),根據(jù)捆綁標(biāo)識(shí)對(duì)軟件進(jìn)行去捆綁處理,攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,針對(duì)性強(qiáng),降低了誤攔截率。
[0129] 圖6是根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖6所示,該系統(tǒng)包括:第三獲取模塊610、分配模塊620、添加模塊630、捕獲模塊640、第一獲取模塊650、解析模塊660、第一抓取模塊670、第二抓取模塊680、展現(xiàn)模塊690。其中,第三獲取模塊610、分配模塊620、添加模塊630為服務(wù)器中的模塊,捕獲模塊640、第一獲取模塊650、解析模塊660、第一抓取模塊670、第二抓取模塊680、展現(xiàn)模塊690為客戶端中的模塊。
[0130] 第三獲取模塊610,適于服務(wù)器獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。第三獲取模塊610獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體的方法可以參見上述方法實(shí)施例的描述,在此不再贅述。
[0131] 分配模塊620,適于服務(wù)器為第一軟件以及一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表。
[0132] 添加模塊630,適于服務(wù)器將第一軟件的捆綁標(biāo)識(shí)添加到第一軟件的軟件信息列表中。
[0133] 本實(shí)施例中,服務(wù)器中保存有分配模塊620建立的捆綁列表、添加模塊630更新的軟件信息列表以及軟件特征信息。在本實(shí)施例中,可以利用不同的數(shù)據(jù)庫(kù)保存上述三種信息。
[0134] 捕獲模塊640,適于客戶端捕獲對(duì)第一軟件的安裝操作。
[0135] 第一獲取模塊650,適于客戶端獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表。
[0136] 解析模塊660,適于客戶端對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí)。
[0137] 具體地,客戶端從服務(wù)器側(cè)獲得第一軟件的軟件信息列表后,對(duì)其進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含分配模塊620為第一軟件分配的捆綁標(biāo)識(shí)ID:1。
[0138] 第一抓取模塊670,適于客戶端抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表。
[0139] 客戶端從服務(wù)器側(cè)抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表,1->2、3、4、5。
[0140] 第二抓取模塊680,適于客戶端根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0141] 客戶端根據(jù)第一抓取模塊670抓取的捆綁列表中包含的捆綁標(biāo)識(shí)2、3、4、5抓取捆綁標(biāo)識(shí)分別為2、3、4、5捆綁子體的軟件特征信息,該軟件特征信息包括軟件的名稱、圖標(biāo)、公司等信息。
[0142] 展現(xiàn)模塊690,適于客戶端展現(xiàn)提示界面,提示界面中顯示有一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0143] 根據(jù)本發(fā)明上述實(shí)施例提供的系統(tǒng),首先服務(wù)器側(cè)的第三獲取模塊獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;分配模塊為第一軟件以及一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;添加模塊將第一軟件的捆綁標(biāo)識(shí)添加到第一軟件的軟件信息列表中;當(dāng)客戶端側(cè)的捕獲模塊捕獲到對(duì)第一軟件的安裝操作時(shí),第一獲取模塊獲取第一軟件的特征值,進(jìn)而獲取根據(jù)第一軟件的特征值而得到的第一軟件的軟件信息列表;解析模塊對(duì)第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則第一抓取模塊抓取第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;第二抓取模塊根據(jù)捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取一個(gè)或多個(gè)捆綁子體的軟件特征信息;展現(xiàn)模塊展現(xiàn)提示界面,提示界面中顯示有一個(gè)或多個(gè)捆綁子體的軟件特征信息。利用該系統(tǒng),用戶可以根據(jù)提示界面中顯示的軟件特征信息有針對(duì)性地對(duì)所捆綁的軟件進(jìn)行去捆綁處理,攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,提高了攔截率。
[0144] 圖7是根據(jù)本發(fā)明另一個(gè)實(shí)施例的對(duì)軟件的去捆綁處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例與上述實(shí)施例的不同之處主要在于,本實(shí)施例將第二抓取模塊680、展現(xiàn)模塊690分別對(duì)應(yīng)的替換為第二獲取模塊780、攔截模塊790;本實(shí)施例中,服務(wù)器中保存有分配模塊620建立的捆綁列表和添加模塊630更新的軟件信息列表。具體地,可以利用不同的數(shù)據(jù)庫(kù)保存上述兩種信息。
[0145] 第二獲取模塊780,適于客戶端獲取第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí)。
[0146] 客戶端獲取第二軟件的捆綁標(biāo)識(shí)的方法可以與獲取第一軟件的捆綁標(biāo)識(shí)的方法相同。具體地,客戶端側(cè)第二獲取模塊進(jìn)一步適于獲取第二軟件的特征值,進(jìn)而獲取服務(wù)器根據(jù)第二軟件的特征值而返回的第二軟件的軟件信息列表,客戶端對(duì)第二軟件的軟件信息列表進(jìn)行解析,得到第二軟件的捆綁標(biāo)識(shí)。
[0147] 攔截模塊790,適于若第二軟件的捆綁標(biāo)識(shí)與一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)符合,則攔截第二軟件的啟動(dòng)安裝操作。
[0148] 根據(jù)本發(fā)明上述實(shí)施例提供的系統(tǒng),通過判斷第二軟件的捆綁標(biāo)識(shí)與一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)是否符合,若符合則攔截第二軟件的啟動(dòng)安裝操作,本系統(tǒng)更為直接的攔截用戶安裝軟件時(shí)被誘導(dǎo)或強(qiáng)制安裝的其他不想安裝的軟件,提高了攔截的準(zhǔn)確性,降低了誤攔截率。
[0149] 在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0150] 在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0151] 類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)
權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0152] 本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、
摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0153] 此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0154] 本發(fā)明的各個(gè)部件實(shí)施例可以以
硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的
軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用
微處理器或者數(shù)字
信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的對(duì)軟件的去捆綁處理設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,
計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)
網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0155] 應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0156] 本發(fā)明公開了:A1、一種對(duì)軟件的去捆綁處理方法,包括:
[0157] 當(dāng)捕獲到對(duì)第一軟件的操作時(shí),獲取所述第一軟件的特征值,進(jìn)而獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表;
[0158] 對(duì)所述第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)所述第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí),若包含,則抓取所述第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;
[0159] 根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。
[0160] A2、根據(jù)A1所述的方法,所述捕獲對(duì)第一軟件的操作具體為:捕獲對(duì)所述第一軟件的安裝操作。
[0161] A3、根據(jù)A2所述的方法,所述根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理進(jìn)一步包括:
[0162] 根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取所述一個(gè)或多個(gè)捆綁子體的軟件特征信息;
[0163] 展現(xiàn)提示界面,所述提示界面中顯示有所述一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0164] A4、根據(jù)A2所述的方法,所述根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理進(jìn)一步包括:
[0165] 獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí);
[0166] 若所述第二軟件的捆綁標(biāo)識(shí)與所述一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)符合,則攔截所述第二軟件的啟動(dòng)安裝操作。
[0167] A5、根據(jù)A4所述的方法,所述獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí)進(jìn)一步包括:
[0168] 獲取所述第二軟件的特征值,進(jìn)而獲取根據(jù)所述第二軟件的特征值而得到的所述第二軟件的軟件信息列表;
[0169] 對(duì)所述第二軟件的軟件信息列表進(jìn)行解析,得到所述第二軟件的捆綁標(biāo)識(shí)。
[0170] A6、根據(jù)A1至A5中任一項(xiàng)所述的方法,在所述獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表之前還包括:
[0171] 獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;
[0172] 為所述第一軟件以及所述一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;
[0173] 將所述第一軟件的捆綁標(biāo)識(shí)添加到所述第一軟件的軟件信息列表中。
[0174] A7、根據(jù)A6所述的方法,所述獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體進(jìn)一步包括:
[0175] 在多個(gè)用戶設(shè)備上分別運(yùn)行第一軟件安裝包,統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)所述變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0176] A8、根據(jù)A6所述的方法,所述獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體進(jìn)一步包括:
[0177] 在至少一個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包;
[0178] 監(jiān)控第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有子進(jìn)程;
[0179] 根據(jù)監(jiān)控過程中檢測(cè)到的特定的創(chuàng)建行為,獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0180] A9、根據(jù)A1-A8任一項(xiàng)所述的方法,所述獲取所述第一軟件的特征值進(jìn)一步包括:
[0181] 獲取所述第一軟件的下面信息的一項(xiàng)或多項(xiàng):父進(jìn)程路徑、進(jìn)程啟動(dòng)命令行、父父進(jìn)程路徑、程序簽名公司、父進(jìn)程程序簽名公司;
[0182] 利用哈希算法,根據(jù)獲取的所述第一軟件的信息計(jì)算所述第一軟件的特征值。
[0183] 本發(fā)明還公開了:B10、一種對(duì)軟件的去捆綁處理系統(tǒng),包括:
[0184] 捕獲模塊,適于捕獲對(duì)第一軟件的操作;
[0185] 第一獲取模塊,適于當(dāng)所述捕獲模塊捕獲到對(duì)第一軟件的操作時(shí),獲取所述第一軟件的特征值,進(jìn)而獲取根據(jù)所述第一軟件的特征值而得到的所述第一軟件的軟件信息列表;
[0186] 解析模塊,適于對(duì)所述第一軟件的軟件信息列表進(jìn)行解析,檢測(cè)所述第一軟件的軟件信息列表中是否包含第一軟件的捆綁標(biāo)識(shí);
[0187] 第一抓取模塊,適于在所述解析模塊檢測(cè)出所述第一軟件的軟件信息列表中包含第一軟件的捆綁標(biāo)識(shí)的情況下,抓取所述第一軟件的捆綁標(biāo)識(shí)關(guān)聯(lián)的捆綁列表;
[0188] 處理模塊,適于根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),進(jìn)行去捆綁處理。
[0189] B11、根據(jù)B10所述的系統(tǒng),所述捕獲模塊具體適于:捕獲對(duì)所述第一軟件的安裝操作。
[0190] B12、根據(jù)B11所述的系統(tǒng),所述處理模塊包括:
[0191] 第二抓取模塊,適于根據(jù)所述捆綁列表中包含的一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí),抓取所述一個(gè)或多個(gè)捆綁子體的軟件特征信息;
[0192] 展現(xiàn)模塊,適于展現(xiàn)提示界面,所述提示界面中顯示有所述一個(gè)或多個(gè)捆綁子體的軟件特征信息。
[0193] B13、根據(jù)B11所述的系統(tǒng),所述處理模塊包括:
[0194] 第二獲取模塊,適于獲取所述第一軟件的安裝過程中啟動(dòng)安裝的一個(gè)或多個(gè)第二軟件的捆綁標(biāo)識(shí);
[0195] 攔截模塊,適于若所述第二軟件的捆綁標(biāo)識(shí)與所述一個(gè)或多個(gè)捆綁子體的捆綁標(biāo)識(shí)符合,則攔截所述第二軟件的啟動(dòng)安裝操作。
[0196] B14、根據(jù)B13所述的系統(tǒng),所述第二獲取模塊進(jìn)一步適于:獲取所述第二軟件的特征值進(jìn)而獲取根據(jù)所述第二軟件的特征值而得到的所述第二軟件的軟件信息列表;對(duì)所述第二軟件的軟件信息列表進(jìn)行解析,得到所述第二軟件的捆綁標(biāo)識(shí)。
[0197] B15、根據(jù)B10所述的系統(tǒng),還包括:
[0198] 第三獲取模塊,適于獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體;
[0199] 分配模塊,適于為所述第一軟件以及所述一個(gè)或多個(gè)捆綁子體分別分配捆綁標(biāo)識(shí),建立捆綁列表;
[0200] 添加模塊,適于將所述第一軟件的捆綁標(biāo)識(shí)添加到所述第一軟件的軟件信息列表中。
[0201] B16、根據(jù)B15所述的系統(tǒng),所述第三獲取模塊具體適于:統(tǒng)計(jì)各個(gè)用戶設(shè)備上第一軟件安裝包運(yùn)行前后已安裝的軟件列表的變化情況,根據(jù)所述變化情況獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0202] B17、根據(jù)B15所述的系統(tǒng),所述第三獲取模塊具體適于:監(jiān)控在至少一個(gè)用戶設(shè)備上運(yùn)行第一軟件安裝包時(shí)的第一軟件的安裝進(jìn)程以及由第一軟件的安裝進(jìn)程啟動(dòng)的所有子進(jìn)程;根據(jù)監(jiān)控過程中檢測(cè)到的特定的創(chuàng)建行為,獲取與第一軟件綁定安裝的一個(gè)或多個(gè)捆綁子體。
[0203] B18、根據(jù)B10-B17所述的系統(tǒng),所述第一獲取模塊進(jìn)一步適于:
[0204] 獲取所述第一軟件的下面信息的一項(xiàng)或多項(xiàng):父進(jìn)程路徑、進(jìn)程啟動(dòng)命令行、父父進(jìn)程路徑、程序簽名公司、父進(jìn)程程序簽名公司;
[0205] 利用哈希算法,根據(jù)獲取的所述第一軟件的信息計(jì)算所述第一軟件的特征值。