專利名稱:一種用于修復文件的方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機安全,具體涉及一種用于修復文件的方法和裝置。
背景技術:
近年來,在計算機領域,惡意程序由于其所具有的感染性、復制性及破壞性,已經成為困擾計算機正常使用的重大安全問題。惡意程序是一個概括性的術語,可以指任何故意創(chuàng)建用來執(zhí)行未經授權、并通常是有害行為的軟件程序。計算機病毒、后門程序、鍵盤記錄器、密碼盜取者、Word和Excel宏病毒、引導區(qū)病毒、腳本病毒、木馬、犯罪軟件、間諜軟件和廣告軟件等等都是惡意程序的典型例子。惡意程序一旦進入計算機并得以執(zhí)行,其表現形式是多種多樣的,下面主要以病毒作為例子進行說明。例如,正常的計算機程序一般是不會將自身的代碼強行連接到其他程序之上的,而病毒卻能使自身的代碼強行傳染到一切符合其傳染條件的、且未受到傳染 的程序之上。計算機病毒一旦進入計算機并得以執(zhí)行,它就會搜尋其他符合其傳染條件的程序或存儲介質,確定目標后再將自身代碼插入其中,達到自我繁殖的目的。對于被計算機病毒感染的文件,傳統(tǒng)殺毒軟件的做法是清除被感染文件中的染毒部分。此方法有比較大的缺陷,首先,其無法清除未知的病毒造成的感染;其次,病毒清除后的文件不能保證和清除前一致。而且,對于比較情況復雜的感染,在進行清除后還可能造成文件不能正常執(zhí)行,有一定的風險性。另外一種做法是使用還原軟件,還原軟件也可以將用戶的文件還原到用戶備份時的狀態(tài),但是該方法要求用戶定期備份,同時備份時的文件也可能不是遭到感染前的文件。
發(fā)明內容
鑒于上述問題,提出了本發(fā)明,以便提供一種克服上述問題或者至少部分地解決上述問題的用于修復文件的方法以及相應的裝置。依據本發(fā)明的一個方面,提供了一種由服務器端執(zhí)行的修復文件的方法,包括以下步驟在服務器端收集一個或多個原始文件并且提取其文件信息;在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;以及服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。在本發(fā)明的實施例中,所述方法還包括在所述在服務器端收集一個或多個原始文件并且提取其文件信息的步驟之后,在服務器端根據所提取的原始文件的文件信息建立文件信息索引;并且在所述在客戶端上的某個文件需要修復的情況下、在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息的步驟中,基于所述文件信息索引來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O在本發(fā)明的實施例中,在所述在服務器端根據所提取的原始文件的文件信息建立文件信息索引的步驟中,為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。在本發(fā)明的實施例中,在所述基于所述文件信息索引來查詢所述需要修復的文件的文件信息的步驟中,利用分別建立的多個文件信息索引中的一個或者多個文件信息索弓丨,來查詢所述需要修復的文件的文件信息。
在本發(fā)明的實施例中,所述方法還包括在所述在服務器端根據所提取的原始文件的文件信息建立文件信息索引的步驟之后,在服務器端存儲已經提取其文件信息的原始文件;并且在所述服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件的步驟中,服務器端基于所存儲的原始文件,向客戶端提供文件信息與所述需要修復的文件匹配的原始文件。在本發(fā)明的實施例中,所述在服務器端提取一個或多個原始文件的文件信息的步驟包括對于文件信息不完整的原始文件,服務器端不提取其文件信息。在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。根據本發(fā)明的另一方面,提供了一種服務器端的修復文件的裝置,包括收集和提取模塊,用于在服務器端收集一個或多個原始文件并且提取其文件信息;服務器端查詢模塊,用于在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;以及原始文件提供模塊,用于從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。在本發(fā)明的實施例中,所述裝置還包括文件信息索弓I建立模塊,用于在所述收集和提取模塊在服務器端收集一個或多個原始文件并且提取其文件信息之后,在服務器端根據所提取的原始文件的文件信息建立文件信息索引;并且在所述服務器端查詢模塊在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息時,基于所述文件信息索引來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O在本發(fā)明的實施例中,在所述文件信息索弓I建立模塊在服務器端根據所提取的原始文件的文件信息建立文件信息索引時,為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。在本發(fā)明的實施例中,在所述服務器端查詢模塊基于所述文件信息索引來查詢所述需要修復的文件的文件信息時,利用分別建立的多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述裝置還包括原始文件存儲模塊,用于在所述文件信息索引建立模塊在服務器端根據所提取的原始文件的文件信息建立文件信息索引之后,在服務器端存儲已經提取其文件信息的原始文件;并且在所述原始文件提供模塊從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件時,基于原始文件存儲模塊所存儲的原始文件,向客戶端提供文件信息與所述需要修復的文件匹配的原始文件。在本發(fā)明的實施例中,所述收集和提取模塊在服務器端提取一個或多個原始文件的文件信息時,對于文件信息不完整的原始文件,不提取其文件信息。 在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。根據本發(fā)明的另一方面,提供了一種由客戶端執(zhí)行的修復文件的方法,包括以下步驟在客戶端提取需要修復的文件的文件信息;客戶端向服務器端查詢所述需要修復的文件的文件信息;以及客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O在本發(fā)明的實施例中,在所述客戶端向服務器端查詢所述需要修復的文件的文件信息的步驟中,客戶端向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息索引是為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立的多個文件信息索引。在本發(fā)明的實施例中,在所述客戶端向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息的步驟中,客戶端利用所述多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。根據本發(fā)明的另一方面,提供了一種客戶端的修復文件的裝置,包括客戶端提取模塊,用于在客戶端提取需要修復的文件的文件信息;客戶端查詢模塊,用于從客戶端向服務器端查詢所述需要修復的文件的文件信息;以及下載和替換模塊,用于在客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O在本發(fā)明的實施例中,在所述客戶端查詢模塊從客戶端向服務器端查詢所述需要修復的文件的文件信息時,向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息索引是為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立的多個文件信息索引。在本發(fā)明的實施例中,在所述客戶端查詢模塊向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息時,利用所述多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要 修復的文件的文件信息。在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。本發(fā)明提供了一種用于修復文件的方法和裝置。根據本發(fā)明的實施例,通過收集原始文件并且提取其文件信息,利用該文件信息對需要修復的文件進行匹配查詢,將需要修復的文件替換為文件信息匹配的原始文件,從而實現了修復的目的。根據本發(fā)明的用于修復文件的方法,對于各種惡意程序或者非惡意程序造成的文件感染或者破壞都能夠進行有效的修復,具有很強的通用性;僅僅依靠文件自身的信息即可完成修復,依賴性很??;可以保證修復后的文件是原始文件,具有很高的安全性和可靠性;并且無需用戶進行日常備份,減少了用戶的負擔,并且當根據本發(fā)明的方法在服務器上執(zhí)行時還能夠有效節(jié)省用戶的磁盤空間。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I是根據本發(fā)明的實施例的由服務器端執(zhí)行的修復文件的方法的流程圖;圖2是根據本發(fā)明的實施例的由客戶端執(zhí)行的修復文件的方法的流程圖;圖3是根據本發(fā)明的實施例的服務器端的修復文件的裝置的框圖;以及圖4是根據本發(fā)明的實施例的客戶端的修復文件的裝置的框圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。圖I是根據本發(fā)明的實施例的由服務器端執(zhí)行的修復文件的方法100的流程圖。如圖I所示,在用于修復文件的方法100中,一開始,執(zhí)行步驟SlOl :在服務器端收集一個或多個原始文件并且提取其文件信息;之后,執(zhí)行步驟S103 :在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;最后,執(zhí)行步驟S105 :服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。與由服務器端執(zhí)行的方法100相對應,本發(fā)明還提供了一種由客戶端執(zhí)行的修復文件的方法200,參見圖2,其中示出了方法200的流程圖。在方法200中,一開始,執(zhí)行步驟S201 :在客戶端提取需要修復的文件的文件信息;之后,執(zhí)行步驟S203 :客戶端向服務器端查詢所述需要修復的文件的文件信息;最后,執(zhí)行步驟S205 :客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
根據方法100和方法200中的各步驟可知,本發(fā)明的修復文件的方法是由服務器端和客戶端配合完成的。然而,本發(fā)明的范圍不限于此,例如,可以將原始文件及其文件信息存儲于客戶端本地,這樣就可以通過查詢客戶端本地的原始文件的文件信息,并利用與需要修復的文件匹配的原始文件來替換所述需要修復的文件。在下文中,將以所述原始文件和所述需要修復的文件是可執(zhí)行文件的情況為例,對本發(fā)明的原理進行描述。然而,本發(fā)明的范圍并不限于此,而是適用于各種操作系統(tǒng)(例如Windows、Mac OS、Linux等等)中的各種格式的文件。在步驟SlOl中,可以在服務器端或者客戶端上從各種可信來源(例如各種軟件開發(fā)商的官方網站)收集各種軟件中的各個文件的原始版本,例如,可以由技術人員周期性地通過手工、利用蜘蛛或網絡爬蟲,和/或由用戶上傳等方式收集各種軟件中的各個文件的原始版本,并且從中提取這些原始文件的文件信息。根據本發(fā)明的實施例,所述文件信息可以包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息等等。其中,文件版本信息、文件頭信息、文件代碼信息、文件編譯器信息、文件制作方信息、文件數字簽名信息這些文件內部固有的信息是文件的內部信息;而文件名、文件所在路徑、文件大小這些信息是文件的外部信息。以“迅雷下載”軟件中的主程序可執(zhí)行文件為例,其內部信息包括文件版本信息(例如7. 2. 3. 3254)、文件頭信息、文件代碼信息、文件編譯器信息、文件制作方信息(例如迅雷公司)、文件數字簽名信息(例如,數字簽名簽發(fā)機構微軟公司,數字簽名授予方迅雷公司),外部信息包括文件名(Thunder, exe)、文件所在路徑(例如 C:\Program Files\Thunder\Program\)、文件大小(例如 924. 30KB)??蛇x地,在步驟SlOl中,對于文件信息不完整的原始文件,服務器端可以選擇不提取其文件信息,將這些原始文件過濾掉,不再用于后續(xù)的修復過程。根據本發(fā)明的實施例,在執(zhí)行了步驟SlOl之后,可以執(zhí)行步驟S102a :在服務器端根據所提取的原始文件的文件信息建立文件信息索引。所述文件信息索引具有易于進行查詢的格式,以便后續(xù)進行文件信息匹配。舉例來說,在步驟S102a中,可以為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。這樣,就建立了多個文件信息索引。然后,可以執(zhí)行步驟S102b :存儲已經提取其文件信息的原始文件,以便在后續(xù)的修復中使用。同樣,如上所述,步驟S102a和S102b既可以在服務器端、也可以在客戶端執(zhí)行,即,可以在服務器端或者在客戶端上建立所述文件信息索弓I,并且存儲已經提取其文件信息的原始文件。
之后,在步驟S103中,在客戶端上的某個文件需要修復(例如,由于感染病毒)的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信
肩、O參見上文提到的方法200中的步驟S201,首先,可以在客戶端以與步驟SlOl類似的方式提取需要修復的文件的文件信息(包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息等等);然后,如步驟S203中所述,客戶端將所提取出的文件信息與在步驟SlOl中提取的原始文件的文件信息(或者可以是在步驟S102a中建立的文件信息索引)進行匹配查詢,此時,可以利用上述多個文件信息索引中的一個或者多個文件信息索引來進行匹配查詢。在此查詢中,將各種內部信息(文件版本信息、文件頭信息、文件代碼信息、文件編譯器信息、文件制作方信息、文件數字簽名信息)和外部信息(文件名、文件所在路徑、文件大小)完全一致的兩個文件,認為是匹配的。由于例如計算機病毒的惡意程序不會破壞文件的文件信息,因此可以保證文件信息與需要修復的文件匹配的原始文件,就是該需要修復的文件被病毒感染(或者以其它方式被破壞)之前的文件。同樣,步驟S103既可以在服務器端上執(zhí)行,也可以在客戶端上執(zhí)行,即當原始文件以及其文件信息被存儲在服務器上時,在服務器上執(zhí)行上述查詢過程;而當原始文件以及其文件信息被存儲在客戶端上時,在客戶端上執(zhí)行上述查詢過程。最后,在步驟S105中,服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。具體而言,可以基于在上述步驟S102b中存儲的原始文件,來提供文件信息與所述需要修復的文件匹配的原始文件。如方法200中的步驟S205所述,客戶端可以從服務器端下載該原始文件,以替換該需要修復的文件,以將被病毒感染(或者以其它方式被破壞)的文件替換為文件的原始版本,從而實現修復。本發(fā)明提供了一種用于修復文件的方法。根據本發(fā)明的實施例,通過收集原始文件并且提取其文件信息,利用該文件信息對需要修復的文件進行匹配查詢,將需要修復的文件替換為文件信息匹配的原始文件,從而實現了修復的目的。根據本發(fā)明的用于修復文件的方法,對于各種惡意程序或者非惡意程序造成的文件感染或者破壞都能夠進行有效的修復,具有很強的通用性;僅僅依靠文件自身的信息即可完成修復,依賴性很小;可以保證修復后的文件是原始文件,具有很高的安全性和可靠性;并且無需用戶進行日常備份,減少了用戶的負擔,并且當根據本發(fā)明的方法在服務器上執(zhí)行時還能夠有效節(jié)省用戶的磁盤空間。與上述的方法100相對應,本發(fā)明還提供了一種服務器端的修復文件的裝置300,參見圖3,該裝置300包括收集和提取模塊301,用于在服務器端收集一個或多個原始文件并且提取其文件信息,該收集和提取模塊301可以用于執(zhí)行上述方法100中的步驟S 101 ;
服務器端查詢模塊303,用于在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息,該服務器端查詢模塊303可以用于執(zhí)行上述方法100中的步驟S103 ;以及原始文件提供模塊305,用于從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件,該原始文件提供模塊305可以用于執(zhí)行上述方法100中的步驟S105。在本發(fā)明的實施例中,所述裝置300還包括文件信息索引建立模塊302a,用于在所述收集和提取模塊301在服務器端收集一個或多個原始文件并且提取其文件信息之后,在服務器端根據所提取的原始文件的文件信息建立文件信息索引,所述文件信息索引建立模塊302a用于執(zhí)行上述方法100中的步驟S102a ;并且在所述服務器端查詢模塊303在服務器端在所提取的原始文件的文件信息中查 詢所述需要修復的文件的文件信息時,基于所述文件信息索引來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O 在本發(fā)明的實施例中,在所述文件信息索引建立模塊302a在服務器端根據所提取的原始文件的文件信息建立文件信息索引時,為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。在本發(fā)明的實施例中,在所述服務器端查詢模塊303基于所述文件信息索引來查詢所述需要修復的文件的文件信息時,利用分別建立的多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述裝置300還包括原始文件存儲模塊302b,用于在所述文件信息索引建立模塊302a在服務器端根據所提取的原始文件的文件信息建立文件信息索引之后,在服務器端存儲已經提取其文件信息的原始文件,所述原始文件存儲模塊302b可以用于執(zhí)行上述方法100中的步驟S102b ;并且在所述原始文件提供模塊305從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件時,基于原始文件存儲模塊所存儲的原始文件,向客戶端提供文件信息與所述需要修復的文件匹配的原始文件。在本發(fā)明的實施例中,所述收集和提取模塊301在服務器端提取一個或多個原始文件的文件信息時,對于文件信息不完整的原始文件,不提取其文件信息。在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。與上述的方法200相對應,本發(fā)明還提供了一種服務器端的修復文件的裝置400,參見圖4,該裝置400包括客戶端提取模塊401,用于在客戶端提取需要修復的文件的文件信息,該客戶端提取模塊401可以用于執(zhí)行上述方法200中的步驟S201 ;客戶端查詢模塊403,用于從客戶端向服務器端查詢所述需要修復的文件的文件信息,該客戶端查詢模塊403可以用于執(zhí)行上述方法200中的步驟S203 ;以及
下載和替換模塊405,用于在客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件,該下載和替換模塊405可以用于執(zhí)行上述方法200中的步驟S205。在本發(fā)明的實施例中,所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信
肩、O在本發(fā)明的實施例中,在所述客戶端查詢模塊403從客戶端向服務器端查詢所述需要修復的文件的文件信息時,向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述文件信息索引是為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立的多個文件信息索引。 在本發(fā)明的實施例中,在所述客戶端查詢模塊403向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息時,利用所述多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。在本發(fā)明的實施例中,所述原始文件和所述需要修復的文件是可執(zhí)行文件。由于上述各裝置實施例與前述各方法實施例相對應,因此不再對各裝置實施例進行詳細描述。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。本領域那些技術人員可以理解,可以對實施例中的裝置中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個裝置中。可以把實施例中的若干模塊組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者模塊中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個裝置實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP )來實現根據本發(fā)明實施例的裝置中的一些或者全部模塊的一些或者全部功能。本發(fā)明還可以實現為用于執(zhí)行這里所描述的方法的一部分或者全部的裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發(fā)明的程序可以存儲 在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權利要求
1.一種由服務器端執(zhí)行的修復文件的方法,包括以下步驟 在服務器端收集一個或多個原始文件并且提取其文件信息; 在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;以及 服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
2.如權利要求I所述的方法,還包括在所述在服務器端收集一個或多個原始文件并且提取其文件信息的步驟之后,在服務器端根據所提取的原始文件的文件信息建立文件信息索引;并且 在所述在客戶端上的某個文件需要修復的情況下、在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息的步驟中,基于所述文件信息索引來查詢所述需要修復的文件的文件信息。
3.如權利要求I或2所述的方法,其中所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息。
4.如權利要求3所述的方法,其中在所述在服務器端根據所提取的原始文件的文件信息建立文件信息索引的步驟中,為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。
5.如權利要求4所述的方法,其中在所述基于所述文件信息索引來查詢所述需要修復的文件的文件信息的步驟中,利用分別建立的多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。
6.如權利要求2所述的方法,還包括在所述在服務器端根據所提取的原始文件的文件信息建立文件信息索引的步驟之后,在服務器端存儲已經提取其文件信息的原始文件;并且 在所述服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件的步驟中,服務器端基于所存儲的原始文件,向客戶端提供文件信息與所述需要修復的文件匹配的原始文件。
7.如權利要求1、2、4、5、6中的任一項所述的方法,其中所述在服務器端提取一個或多個原始文件的文件信息的步驟包括對于文件信息不完整的原始文件,服務器端不提取其文件信息。
8.如權利要求1、2、4、5、6中的任一項所述的方法,其中所述原始文件和所述需要修復的文件是可執(zhí)行文件。
9.一種服務器端的修復文件的裝置,包括 收集和提取模塊,用于在服務器端收集一個或多個原始文件并且提取其文件信息; 服務器端查詢模塊,用于在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;以及 原始文件提供模塊,用于從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
10.如權利要求9所述的裝置,還包括文件信息索引建立模塊,用于在所述收集和提取模塊在服務器端收集一個或多個原始文件并且提取其文件信息之后,在服務器端根據所提取的原始文件的文件信息建立文件信息索引;并且 在所述服務器端查詢模塊在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息時,基于所述文件信息索引來查詢所述需要修復的文件的文件信肩、O
11.如權利要求9或10所述的裝置,其中所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息。
12.如權利要求11所述的裝置,其中在所述文件信息索引建立模塊在服務器端根據所提取的原始文件的文件信息建立文件信息索引時,為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立文件信息索引。
13.如權利要求12所述的裝置,其中在所述服務器端查詢模塊基于所述文件信息索引來查詢所述需要修復的文件的文件信息時,利用分別建立的多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。
14.如權利要求10所述的裝置,還包括原始文件存儲模塊,用于在所述文件信息索引建立模塊在服務器端根據所提取的原始文件的文件信息建立文件信息索引之后,在服務器端存儲已經提取其文件信息的原始文件;并且 在所述原始文件提供模塊從服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件時,基于原始文件存儲模塊所存儲的原始文件,向客戶端提供文件信息與所述需要修復的文件匹配的原始文件。
15.如權利要求9、10、12、13、14中的任一項所述的裝置,其中所述收集和提取模塊在服務器端提取一個或多個原始文件的文件信息時,對于文件信息不完整的原始文件,不提取其文件息。
16.如權利要求9、10、12、13、14中的任一項所述的裝置,其中所述原始文件和所述需要修復的文件是可執(zhí)行文件。
17.一種由客戶端執(zhí)行的修復文件的方法,包括以下步驟 在客戶端提取需要修復的文件的文件信息; 客戶端向服務器端查詢所述需要修復的文件的文件信息;以及 客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
18.如權利要求17所述的方法,其中所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息。
19.如權利要求17所述的方法,其中在所述客戶端向服務器端查詢所述需要修復的文件的文件信息的步驟中,客戶端向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息。
20.如權利要求18所述的方法,其中所述文件信息索引是為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立的多個文件信息索引。
21.如權利要求20所述的方法,其中在所述客戶端向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息的步驟中,客戶端利用所述多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。
22.如權利要求17至21中的任一項所述的方法,其中所述原始文件和所述需要修復的文件是可執(zhí)行文件。
23.一種客戶端的修復文件的裝置,包括 客戶端提取模塊,用于在客戶端提取需要修復的文件的文件信息; 客戶端查詢模塊,用于從客戶端向服務器端查詢所述需要修復的文件的文件信息;以及 下載和替換模塊,用于在客戶端從服務器端下載文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。
24.如權利要求23所述的裝置,其中所述文件信息包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息。
25.如權利要求23所述的裝置,其中在所述客戶端查詢模塊從客戶端向服務器端查詢所述需要修復的文件的文件信息時,向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息。
26.如權利要求24所述的裝置,其中所述文件信息索引是為包括文件版本信息、文件頭信息、文件代碼信息、文件名、文件所在路徑、文件大小、文件編譯器信息、文件制作方信息、文件數字簽名信息的各種文件信息分別建立的多個文件信息索引。
27.如權利要求26所述的裝置,其中在所述客戶端查詢模塊向服務器端的、根據在服務器端收集的一個或多個原始文件的文件信息建立的文件信息索引查詢所述需要修復的文件的文件信息時,利用所述多個文件信息索引中的一個或者多個文件信息索引,來查詢所述需要修復的文件的文件信息。
28.如權利要求23至27中的任一項所述的裝置,其中所述原始文件和所述需要修復的文件是可執(zhí)行文件。
全文摘要
本發(fā)明公開了一種用于修復文件的方法和裝置。所述方法包括在服務器端收集一個或多個原始文件并且提取其文件信息;在客戶端上的某個文件需要修復的情況下,在服務器端在所提取的原始文件的文件信息中查詢所述需要修復的文件的文件信息;以及服務器端向客戶端提供文件信息與所述需要修復的文件匹配的原始文件,以替換所述需要修復的文件。根據本發(fā)明的用于修復文件的方法,對于各種惡意程序或者非惡意程序造成的文件感染或者破壞都能夠進行有效的修復,具有很強的通用性;僅僅依靠文件自身的信息即可完成修復,依賴性很小;可以保證修復后的文件是原始文件,具有很高的安全性和可靠性。
文檔編號G06F11/14GK102902604SQ20121037118
公開日2013年1月30日 申請日期2012年9月28日 優(yōu)先權日2012年9月28日
發(fā)明者姚彤, 蒙杭州, 江愛軍 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司