修復(fù)客戶端程序的方法、裝置、系統(tǒng)及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種修復(fù)客戶端程序的方法、裝置、系統(tǒng)及服務(wù)器。
【背景技術(shù)】
[0002]客戶端程序在使用過程中,可能會由于文件系統(tǒng)錯誤導(dǎo)致文件損壞。另外,目前互聯(lián)網(wǎng)上病毒和惡意程序較多,很容易出現(xiàn)客戶端程序的文件被惡意程序篡改的情況,導(dǎo)致用戶信息泄露。為了保證客戶端程序的正常運(yùn)行,有必要對客戶端程序進(jìn)行自動修復(fù)。
[0003]—種常見的方案是為每次修復(fù)時提供一個完整的安裝包,用戶下載并運(yùn)行安裝包執(zhí)行修復(fù)和更新操作。這種方式需要將出錯的客戶端程序卸載后再重裝安裝包,同時下載完整安裝包也需要較大的帶寬成本,修復(fù)耗時較長,因此既浪費(fèi)流量又浪費(fèi)時間。
[0004]另一種方案是在確定客戶端程序中需要修復(fù)的文件,根據(jù)需要修復(fù)的文件的相關(guān)信息從服務(wù)器中下載相應(yīng)的整個原始文件來進(jìn)行修復(fù),從而不需要將客戶端程序卸載并重新下載整個安裝包進(jìn)行重新安裝,能夠快速修復(fù)客戶端程序中損壞的文件,在一定程度上能節(jié)省用戶流量,并能達(dá)到快速修復(fù)的目的。
【發(fā)明內(nèi)容】
[0005]經(jīng)工程測試研究發(fā)現(xiàn),現(xiàn)有技術(shù)中通過下載整個原始文件來對被篡改的文件進(jìn)行修復(fù)的客戶端程序修復(fù)方法,雖然避免了卸載并重新下載、安裝的繁瑣過程,但是對于占用空間較大的原始文件,在下載時依然會需要較大的帶寬成本。而且,通常來說,客戶端程序的文件被篡改的內(nèi)容通常只占整個文件的一小部分,因此下載整個文件沒有必要,只需下載被修改的部分即可,因此,利用現(xiàn)有技術(shù)將被篡改的文件的整個原始文件下載來進(jìn)行修復(fù)仍然會存在浪費(fèi)不必要的用戶流量的問題。
[0006]為解決上述問題,本發(fā)明提出了一種理想的客戶端程序修復(fù),只需要下載客戶端程序的文件被修改的部分內(nèi)容即可。
[0007]為實(shí)現(xiàn)上述理想的客戶端程序修復(fù),本發(fā)明實(shí)施例的目的是提供一種修復(fù)客戶端程序的方法、裝置、系統(tǒng)及服務(wù)器,能夠在確定客戶端程序被修改的文件的情況下,只下載文件中被修改的數(shù)據(jù),從而節(jié)省了大量的數(shù)據(jù)交互,減少寬帶成本。
[0008]本發(fā)明實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0009]當(dāng)本地的客戶端程序中被修改的文件大于閾值時,則將所述被修改的文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成所述被修改的文件的特征碼列表;
[0010]將生成的所述特征碼列表發(fā)送給所述服務(wù)器,以請求獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊由所述服務(wù)器將接收到的特征碼列表與所述被修改的文件所對應(yīng)的原始文件進(jìn)行比對生成校驗(yàn)碼列表后,將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0011]接收所述服務(wù)器返回的所述原始數(shù)據(jù)塊以及校驗(yàn)碼列表,并根據(jù)所述校驗(yàn)碼列表將所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0012]本發(fā)明的另一實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0013]接收用戶端發(fā)送的特征碼列表;其中,所述特征碼列表為所述用戶端將客戶端程序中的被修改的文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0014]將接收到的所述特征碼列表與所述被修改的文件所對應(yīng)的原始文件進(jìn)行對比生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對,以確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;
[0015]向所述用戶端發(fā)送所述原始數(shù)據(jù)塊以及校驗(yàn)碼列表,使所述用戶端根據(jù)所述校驗(yàn)碼列表將所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0016]本發(fā)明的另一實(shí)施例對應(yīng)公開了一種修復(fù)客戶端程序的裝置,包括:
[0017]分塊處理模塊,用于當(dāng)本地的客戶端程序中被修改的文件大于閾值時,將所述被修改的文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成所述被修改的文件的特征碼列表;
[0018]發(fā)送模塊,用于將生成的所述特征碼列表發(fā)送給所述服務(wù)器,以請求獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊由所述服務(wù)器將接收到的特征碼列表與所述被修改的文件所對應(yīng)的原始文件進(jìn)行比對生成校驗(yàn)碼列表后,將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0019]修復(fù)模塊,用于接收所述服務(wù)器返回的所述原始數(shù)據(jù)塊以及校驗(yàn)碼列表,并根據(jù)所述校驗(yàn)碼列表將所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0020]本發(fā)明的另一實(shí)施例提供了一種服務(wù)器,包括:
[0021]接收模塊,用于接收用戶端發(fā)送的特征碼列表;其中,所述特征碼列表為所述用戶端將客戶端程序中的被修改的文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0022]處理模塊,用于將接收到的所述特征碼列表與所述被修改的文件所對應(yīng)的原始文件進(jìn)行對比生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對,以確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;
[0023]發(fā)送模塊,用于向所述用戶端發(fā)送所述原始數(shù)據(jù)塊以及校驗(yàn)碼列表,使所述用戶端根據(jù)所述校驗(yàn)碼列表將所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0024]本發(fā)明的另一實(shí)施例提供了一種修復(fù)客戶端程序的系統(tǒng),包括至少一個如上所述的修復(fù)客戶端程序的裝置以及如上所述的服務(wù)器。
[0025]本發(fā)明的另一實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0026]當(dāng)本地的客戶端程序中被修改的文件大于閾值時,向服務(wù)器發(fā)送獲取所述
[0027]被修改的文件所對應(yīng)的原始文件的特征碼列表的第一請求;其中,所述特征碼列表為通過所述服務(wù)器對所述原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0028]將所述服務(wù)器返回的特征碼列表與本地的所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對,從而確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;
[0029]向所述服務(wù)器發(fā)送獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊的第二請求;
[0030]將所述服務(wù)器返回的所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0031]本發(fā)明另一實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0032]接收用戶端發(fā)送獲取客戶端程序中被修改的文件的所對應(yīng)的原始文件的檢驗(yàn)碼列表的第一請求;
[0033]向所述用戶端發(fā)送所述特征碼列表;其中,所述特征碼列表為通過對被修改的文件的所對應(yīng)的原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0034]接收所述用戶端發(fā)送的獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊的第二請求;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊為所述用戶端將接收到的特征碼列表與所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0035]向所述用戶端發(fā)送所述原始數(shù)據(jù)塊;所述原始數(shù)據(jù)塊被所述用戶端用來對所述被修改的文件進(jìn)行修復(fù)。
[0036]本發(fā)明另一實(shí)施例對應(yīng)提供了一種修復(fù)客戶端程序的裝置,包括:
[0037]第一請求發(fā)送模塊,用于當(dāng)本地的客戶端程序中被修改的文件大于閾值時,向服務(wù)器發(fā)送獲取所述被修改的文件所對應(yīng)的原始文件的特征碼列表的第一請求;其中,所述特征碼列表為通過所述服務(wù)器對所述原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0038]處理模塊,用于將所述服務(wù)器返回的特征碼列表與本地的所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對,從而確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;
[0039]第二請求發(fā)送模塊,用于向所述服務(wù)器發(fā)送獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊的第二請求;
[0040]修復(fù)模塊,用于將所述服務(wù)器返回的所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0041]本發(fā)明另一實(shí)施例對應(yīng)提供了一種服務(wù)器,其特征在于,包括:
[0042]第一請求接收模塊,用于接收用戶端發(fā)送獲取客戶端程序中被修改的文件的所對應(yīng)的原始文件的檢驗(yàn)碼列表的第一請求;
[0043]第一發(fā)送模塊,用于向所述用戶端發(fā)送所述特征碼列表;其中,所述特征碼列表為通過對被修改的文件的所對應(yīng)的原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0044]第二請求接收模塊,用于接收所述用戶端發(fā)送的獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊的第二請求;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊為所述用戶端將接收到的特征碼列表與所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0045]第二發(fā)送模塊,用于向所述用戶端發(fā)送所述原始數(shù)據(jù)塊;所述原始數(shù)據(jù)塊被所述用戶端用來對所述被修改的文件進(jìn)行修復(fù)。
[0046]本發(fā)明另一實(shí)施例對應(yīng)提供了一種修復(fù)客戶端程序的系統(tǒng),包括至少一個如上所述的修復(fù)客戶端程序的裝置以及如上所述的服務(wù)器。本發(fā)明另一實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0047]當(dāng)本地的客戶端程序中被修改的文件大于閾值時,向服務(wù)器發(fā)送獲取所述被修改的文件所對應(yīng)的原始文件的特征碼列表的第一請求;其中,所述特征碼列表為通過所述服務(wù)器對所述原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0048]將所述服務(wù)器返回的特征碼列表與本地的所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表;
[0049]向所述服務(wù)器發(fā)送所述校驗(yàn)碼列表,以請求獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊為所述服務(wù)器將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0050]將所述服務(wù)器返回的所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0051]本發(fā)明另一實(shí)施例提供了一種修復(fù)客戶端程序的方法,包括:
[0052]接收用戶端發(fā)送獲取客戶端程序中被修改的文件的所對應(yīng)的原始文件的檢驗(yàn)碼列表的第一請求;
[0053]向所述用戶端發(fā)送所述特征碼列表;其中,所述特征碼列表為通過對被修改的文件的所對應(yīng)的原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0054]接收所述用戶端發(fā)送的校驗(yàn)碼列表,并將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述校驗(yàn)碼列表為所述用戶端將接收到的特征碼列表與所述被修改的文件進(jìn)行比對后生成;
[0055]向所述用戶端發(fā)送所述原始數(shù)據(jù)塊;所述原始數(shù)據(jù)塊被所述用戶端用來對所述被修改的文件進(jìn)行修復(fù)。
[0056]本發(fā)明實(shí)施例對應(yīng)提供了一種修復(fù)客戶端程序的裝置,包括:
[0057]第一請求發(fā)送模塊,用于當(dāng)本地的客戶端程序中被修改的文件大于閾值時,向服務(wù)器發(fā)送獲取所述被修改的文件所對應(yīng)的原始文件的特征碼列表的第一請求;其中,所述特征碼列表為通過所述服務(wù)器對所述原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0058]處理模塊,用于將所述服務(wù)器返回的特征碼列表與本地的所述被修改的文件進(jìn)行比對后生成校驗(yàn)碼列表;
[0059]第二請求發(fā)送模塊,用于向所述服務(wù)器發(fā)送所述校驗(yàn)碼列表,以獲取所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊為所述服務(wù)器將所述校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定;
[0060]修復(fù)模塊,用于將所述服務(wù)器返回的所述原始數(shù)據(jù)塊對所述被修改的文件進(jìn)行修復(fù)。
[0061]本發(fā)明另一實(shí)施例提供了一種服務(wù)器,包括:
[0062]第一請求接收模塊,用于接收用戶端發(fā)送獲取客戶端程序中被修改的文件的所對應(yīng)的原始文件的檢驗(yàn)碼列表的第一請求;
[0063]第一發(fā)送模塊,用于向所述用戶端發(fā)送所述特征碼列表;其中,所述特征碼列表為通過對被修改的文件的所對應(yīng)的原始文件按照閾值大小劃分成多個數(shù)據(jù)塊,并計(jì)算出每個數(shù)據(jù)塊的特征值后生成;
[0064]處理模塊,用于將所述用戶端發(fā)送的校驗(yàn)碼列表與所述特征碼列表進(jìn)行比對確定所述被修改的文件中被修改/刪除了的數(shù)據(jù)塊所對應(yīng)的原始數(shù)據(jù)塊;其中,所述校驗(yàn)碼列表為所述用戶端將接收到的特征碼列表與所述被修改的文件進(jìn)行比對后生成;
[0065]第二發(fā)送模塊,用于向所述用戶端發(fā)送所述原始數(shù)據(jù)塊;所述原始數(shù)據(jù)塊被所述用戶端用來對所述被修改的文件進(jìn)行修復(fù)。
[0066]本發(fā)明實(shí)施例對應(yīng)提供了一種修復(fù)客戶端程序的系統(tǒng),包括至少一個如上所述的修復(fù)客戶端程序的裝置以及如上所述的服務(wù)器。
[0067]與現(xiàn)有技術(shù)相比,本發(fā)明公開的修復(fù)客戶端程序的方法、裝置、系統(tǒng)及服務(wù)器通過將大于一定值的客戶端程序中被修改的文件進(jìn)行分塊后計(jì)算各個分塊的特征信息,將分塊的特征信息與原始文件的特征信息進(jìn)行對比后找出被修改的數(shù)據(jù)塊,并下載被修改的數(shù)據(jù)塊來對客戶端程序中被修改的文件進(jìn)行修復(fù),從而節(jié)省了大量的數(shù)據(jù)交互,極大