本技術(shù)涉及病毒掃描,尤其涉及一種文件解壓縮方法、裝置、殺毒系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著網(wǎng)絡(luò)攻擊手段的不斷演變和惡意軟件的日益增多,用戶使用的終端設(shè)備面臨著前所未有的安全威脅。因此,擁有一款可靠的殺毒引擎成為了保護(hù)信息安全的基礎(chǔ)。
2、為了減小文件的大小,便于存儲(chǔ)和傳輸,文件常常以壓縮格式存在。為了能夠?qū)嚎s文件內(nèi)部的每個(gè)組成部分進(jìn)行病毒掃描操作,殺毒引擎在對(duì)壓縮文件進(jìn)行病毒掃描之前,首先需要對(duì)其進(jìn)行解壓縮。對(duì)于包含多層壓縮的壓縮文件,現(xiàn)有技術(shù)通常會(huì)先對(duì)最外層的壓縮文件進(jìn)行解壓縮,然后檢查解壓縮后得到的文件是否仍然包含內(nèi)層壓縮文件。如果發(fā)現(xiàn)內(nèi)層壓縮文件,殺毒引擎會(huì)繼續(xù)對(duì)這些內(nèi)層壓縮文件進(jìn)行解壓縮,這個(gè)過程會(huì)逐層遞歸進(jìn)行,直到所有壓縮格式的文件都被解開。這一過程確保了殺毒引擎能夠訪問和掃描該壓縮文件所包含的所有文件內(nèi)容,從而進(jìn)行全面的病毒掃描操作。
3、然而,現(xiàn)有解壓縮處理存在占用大量冗余空間以及解壓縮效率較低的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種文件解壓縮方法、裝置、殺毒系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì),用以解決解壓縮處理存在的占用大量冗余空間以及解壓縮效率較低的問題。
2、第一方面,本技術(shù)提供一種文件解壓縮方法,包括:
3、在對(duì)待解壓縮文件進(jìn)行解壓縮時(shí),對(duì)所述待解壓縮文件執(zhí)行第一解壓縮操作時(shí),確定解壓縮后的每個(gè)第一文件的格式;
4、若任一第一文件的格式為壓縮格式,則以數(shù)據(jù)流的形式讀取所述待解壓縮文件;
5、在讀取到壓縮格式的第一文件時(shí),對(duì)所述壓縮格式的第一文件執(zhí)行第二解壓縮操作,獲取目標(biāo)文件;
6、在讀取到非壓縮格式的第一文件時(shí),將所述非壓縮格式的第一文件確定為所述目標(biāo)文件。
7、在一種可能的設(shè)計(jì)中,所述在讀取到壓縮格式的第一文件時(shí),對(duì)所述壓縮格式的第一文件執(zhí)行第二解壓縮操作,獲取目標(biāo)文件,包括:
8、步驟a、在讀取到所述壓縮格式的第一文件時(shí),對(duì)所述壓縮格式的第一文件進(jìn)行第二解壓縮操作,確定解壓縮后的每個(gè)第二文件的格式;
9、步驟b、若任一第二文件的格式為壓縮格式,則以數(shù)據(jù)流的形式讀取所述壓縮格式的第一文件;
10、步驟c、在讀取到非壓縮格式的第二文件時(shí),將所述非壓縮格式的第二文件確定為所述目標(biāo)文件;
11、步驟d、在讀取到壓縮格式的第二文件時(shí),則將所述壓縮格式的第二文件確定為新的壓縮格式的第一文件;
12、重復(fù)執(zhí)行所述步驟a至所述步驟d,直到所有的第二文件均為非壓縮格式時(shí)停止,獲取所述目標(biāo)文件。
13、在一種可能的設(shè)計(jì)中,所述方法還包括:
14、確定殺毒系統(tǒng)中處于空閑狀態(tài)的目標(biāo)查毒設(shè)備;
15、將所述目標(biāo)文件發(fā)送給所述殺毒系統(tǒng)中的目標(biāo)查毒設(shè)備。
16、在一種可能的設(shè)計(jì)中,所述將所述目標(biāo)文件發(fā)送給所述殺毒系統(tǒng)中的目標(biāo)查毒設(shè)備,包括:
17、在將所述目標(biāo)文件發(fā)送給所述目標(biāo)查毒設(shè)備時(shí),記錄已向所述目標(biāo)查毒設(shè)備發(fā)送的目標(biāo)文件的第一數(shù)據(jù)量;
18、若所述第一數(shù)據(jù)量超過預(yù)設(shè)數(shù)據(jù)量,則在將當(dāng)前目標(biāo)文件發(fā)送給所述目標(biāo)查毒設(shè)備后,向所述目標(biāo)查毒設(shè)備發(fā)送已發(fā)送目標(biāo)文件對(duì)應(yīng)的第一文件目錄;
19、重新確定新的目標(biāo)查毒設(shè)備;
20、將剩余目標(biāo)文件以及對(duì)應(yīng)的第二文件目錄,發(fā)送給新的目標(biāo)查毒設(shè)備。
21、在一種可能的設(shè)計(jì)中,所述將所述目標(biāo)文件發(fā)送給所述殺毒系統(tǒng)中的目標(biāo)查毒設(shè)備,包括:
22、步驟e、在對(duì)所述待解壓縮文件進(jìn)行解壓縮時(shí),實(shí)時(shí)檢測(cè)當(dāng)前已生成的目標(biāo)文件的第三數(shù)據(jù)量;
23、步驟f、在所述當(dāng)前已生成的目標(biāo)文件的第三數(shù)據(jù)量以及所述目標(biāo)查毒設(shè)備已存儲(chǔ)的第四數(shù)據(jù)量的數(shù)據(jù)量總和超過預(yù)設(shè)數(shù)據(jù)量,則將所述當(dāng)前已生成的目標(biāo)文件以及對(duì)應(yīng)的第三文件目錄發(fā)送給所述目標(biāo)查毒設(shè)備;
24、步驟g、將所述待解壓縮文件中的未解壓縮部分確定為新的待解壓縮文件,并重新確定新的目標(biāo)查毒設(shè)備;
25、步驟h、在所述數(shù)據(jù)量總和不超過所述預(yù)設(shè)數(shù)據(jù)量,且已對(duì)所述待解壓縮文件解壓縮完畢,則將所述目標(biāo)文件以及對(duì)應(yīng)的第四文件目錄發(fā)送給所述目標(biāo)查毒設(shè)備;
26、重復(fù)執(zhí)行所述步驟e至所述步驟h,直到所述待解壓縮文件壓縮完畢。
27、在一種可能的設(shè)計(jì)中,所述將所述目標(biāo)文件發(fā)送給所述殺毒系統(tǒng)中的目標(biāo)查毒設(shè)備,包括:
28、將所述目標(biāo)文件按照預(yù)設(shè)編碼格式進(jìn)行編碼,獲取編碼結(jié)果;
29、將所述編碼結(jié)果發(fā)送至所述目標(biāo)查毒設(shè)備的預(yù)設(shè)路徑。
30、在一種可能的設(shè)計(jì)中,在對(duì)所述待解壓縮文件進(jìn)行解壓縮之前,所述方法還包括:
31、接收所述殺毒系統(tǒng)的調(diào)度設(shè)備發(fā)送的解壓縮任務(wù),所述解壓縮任務(wù)用于指示對(duì)所述待解壓縮文件進(jìn)行解壓縮,所述解壓縮任務(wù)包括目標(biāo)查毒設(shè)備標(biāo)識(shí)。
32、在一種可能的設(shè)計(jì)中,所述重新確定新的目標(biāo)查毒設(shè)備,包括:
33、向殺毒系統(tǒng)的調(diào)度設(shè)備發(fā)送資源申請(qǐng)請(qǐng)求,所述資源申請(qǐng)請(qǐng)求用于確定當(dāng)前處于空閑狀態(tài)的所述新的目標(biāo)查毒設(shè)備;
34、接收所述調(diào)度設(shè)備發(fā)送的新的目標(biāo)查毒設(shè)備標(biāo)識(shí);
35、確定所述新的目標(biāo)查毒設(shè)備標(biāo)識(shí)對(duì)應(yīng)的所述新的目標(biāo)查毒設(shè)備。
36、第二方面,本技術(shù)提供一種文件解壓縮裝置,包括:
37、第一解壓縮模塊,用于在對(duì)待解壓縮文件進(jìn)行解壓縮時(shí),對(duì)所述待解壓縮文件執(zhí)行第一解壓縮操作時(shí),確定解壓縮后的每個(gè)第一文件的格式;
38、讀取模塊,用于若任一第一文件的格式為壓縮格式,則以數(shù)據(jù)流的形式讀取所述待解壓縮文件;
39、第二解壓縮模塊,用于在讀取到壓縮格式的第一文件時(shí),對(duì)所述壓縮格式的第一文件執(zhí)行第二解壓縮操作,獲取目標(biāo)文件;
40、確定模塊,用于在讀取到非壓縮格式的第一文件時(shí),將所述非壓縮格式的第一文件確定為所述目標(biāo)文件。
41、在一種可能的設(shè)計(jì)中,第二解壓縮模塊,具體用于:
42、步驟a、在讀取到所述壓縮格式的第一文件時(shí),對(duì)所述壓縮格式的第一文件進(jìn)行第二解壓縮操作,確定解壓縮后的每個(gè)第二文件的格式;
43、步驟b、若任一第二文件的格式為壓縮格式,則以數(shù)據(jù)流的形式讀取所述壓縮格式的第一文件;
44、步驟c、在讀取到非壓縮格式的第二文件時(shí),將所述非壓縮格式的第二文件確定為所述目標(biāo)文件;
45、步驟d、在讀取到壓縮格式的第二文件時(shí),則將所述壓縮格式的第二文件確定為新的壓縮格式的第一文件;
46、重復(fù)執(zhí)行所述步驟a至所述步驟d,直到所有的第二文件均為非壓縮格式時(shí)停止,獲取所述目標(biāo)文件。
47、在一種可能的設(shè)計(jì)中,所述文件解壓縮裝置,還包括發(fā)送模塊,用于:
48、確定殺毒系統(tǒng)中處于空閑狀態(tài)的目標(biāo)查毒設(shè)備;
49、將所述目標(biāo)文件發(fā)送給所述殺毒系統(tǒng)中的目標(biāo)查毒設(shè)備。
50、在一種可能的設(shè)計(jì)中,所述發(fā)送模塊,具體用于:
51、在將所述目標(biāo)文件發(fā)送給所述目標(biāo)查毒設(shè)備時(shí),記錄已向所述目標(biāo)查毒設(shè)備發(fā)送的目標(biāo)文件的第一數(shù)據(jù)量;
52、若所述第一數(shù)據(jù)量超過預(yù)設(shè)數(shù)據(jù)量,則在將當(dāng)前目標(biāo)文件發(fā)送給所述目標(biāo)查毒設(shè)備后,向所述目標(biāo)查毒設(shè)備發(fā)送已發(fā)送目標(biāo)文件對(duì)應(yīng)的第一文件目錄;
53、重新確定新的目標(biāo)查毒設(shè)備;
54、將剩余目標(biāo)文件以及對(duì)應(yīng)的第二文件目錄,發(fā)送給新的目標(biāo)查毒設(shè)備。
55、在一種可能的設(shè)計(jì)中,所述發(fā)送模塊,具體用于:
56、步驟e、在對(duì)所述待解壓縮文件進(jìn)行解壓縮時(shí),實(shí)時(shí)檢測(cè)當(dāng)前已生成的目標(biāo)文件的第三數(shù)據(jù)量;
57、步驟f、在所述當(dāng)前已生成的目標(biāo)文件的第三數(shù)據(jù)量以及所述目標(biāo)查毒設(shè)備已存儲(chǔ)的第四數(shù)據(jù)量的數(shù)據(jù)量總和超過預(yù)設(shè)數(shù)據(jù)量,則將所述當(dāng)前已生成的目標(biāo)文件以及對(duì)應(yīng)的第三文件目錄發(fā)送給所述目標(biāo)查毒設(shè)備;
58、步驟g、將所述待解壓縮文件中的未解壓縮部分確定為新的待解壓縮文件,并重新確定新的目標(biāo)查毒設(shè)備;
59、步驟h、在所述數(shù)據(jù)量總和不超過所述預(yù)設(shè)數(shù)據(jù)量,且已對(duì)所述待解壓縮文件解壓縮完畢,則將所述目標(biāo)文件以及對(duì)應(yīng)的第四文件目錄發(fā)送給所述目標(biāo)查毒設(shè)備;
60、重復(fù)執(zhí)行所述步驟e至所述步驟h,直到所述待解壓縮文件壓縮完畢。
61、在一種可能的設(shè)計(jì)中,所述發(fā)送模塊,具體用于:
62、將所述目標(biāo)文件按照預(yù)設(shè)編碼格式進(jìn)行編碼,獲取編碼結(jié)果;
63、將所述編碼結(jié)果發(fā)送至所述目標(biāo)查毒設(shè)備的預(yù)設(shè)路徑。
64、在一種可能的設(shè)計(jì)中,在對(duì)所述待解壓縮文件進(jìn)行解壓縮之前,所述文件解壓縮裝置,還包括接收模塊,用于接收所述殺毒系統(tǒng)的調(diào)度設(shè)備發(fā)送的解壓縮任務(wù),所述解壓縮任務(wù)用于指示對(duì)所述待解壓縮文件進(jìn)行解壓縮,所述解壓縮任務(wù)包括目標(biāo)查毒設(shè)備標(biāo)識(shí)。
65、在一種可能的設(shè)計(jì)中,所述發(fā)送模塊,還用于向殺毒系統(tǒng)的調(diào)度設(shè)備發(fā)送資源申請(qǐng)請(qǐng)求,所述資源申請(qǐng)請(qǐng)求用于確定當(dāng)前處于空閑狀態(tài)的所述新的目標(biāo)查毒設(shè)備;
66、所述接收模塊,還用于接收所述調(diào)度設(shè)備發(fā)送的新的目標(biāo)查毒設(shè)備標(biāo)識(shí);
67、所述確定模塊,還用于確定所述新的目標(biāo)查毒設(shè)備標(biāo)識(shí)對(duì)應(yīng)的所述新的目標(biāo)查毒設(shè)備。
68、第三方面,本技術(shù)實(shí)施例提供一種殺毒系統(tǒng),包括:
69、調(diào)度設(shè)備、解壓縮設(shè)備以及查毒設(shè)備;
70、所述調(diào)度設(shè)備用于根據(jù)病毒掃描任務(wù),向解壓縮設(shè)備分發(fā)解壓縮任務(wù);所述解壓縮任務(wù)用于指示對(duì)待解壓縮文件進(jìn)行解壓縮,生成目標(biāo)文件;
71、所述解壓縮設(shè)備用于執(zhí)行如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的文件解壓縮方法,還用于將所述目標(biāo)文件發(fā)送給所述查毒設(shè)備;
72、所述查毒設(shè)備用于對(duì)所述目標(biāo)文件進(jìn)行病毒掃描,生成掃描結(jié)果,所述掃描結(jié)果用于表示所述目標(biāo)文件是否存在病毒。
73、第四方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括:至少一個(gè)處理器和存儲(chǔ)器;所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述至少一個(gè)處理器執(zhí)行如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的文件解壓縮方法。
74、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,當(dāng)處理器執(zhí)行所述計(jì)算機(jī)執(zhí)行指令時(shí),實(shí)現(xiàn)如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的文件解壓縮方法。
75、第六方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)如上第一方面以及第一方面各種可能的設(shè)計(jì)所述的文件解壓縮方法。
76、本技術(shù)提供的文件解壓縮方法、裝置、殺毒系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì),在該方法中,在對(duì)待解壓縮文件進(jìn)行解壓縮時(shí),通過對(duì)待解壓縮文件執(zhí)行第一解壓縮操作時(shí),確定解壓縮后的每個(gè)第一文件的格式。若任一第一文件的格式為壓縮格式,則以數(shù)據(jù)流的形式讀取待解壓縮文件。在讀取到壓縮格式的第一文件時(shí),對(duì)壓縮格式的第一文件執(zhí)行第二解壓縮操作,獲取目標(biāo)文件。在讀取到非壓縮格式的第一文件時(shí),將非壓縮格式的第一文件確定為目標(biāo)文件。在本技術(shù)方案中,以數(shù)據(jù)流的形式讀取待解壓縮文件,在讀取到壓縮格式的第一文件時(shí),對(duì)待解壓縮文件進(jìn)行第一解壓縮操作的同時(shí),通過管道化技術(shù)為壓縮格式的第一文件串聯(lián)的增加第二解壓縮操作,針對(duì)壓縮格式的第一文件,只保存對(duì)其執(zhí)行第二解壓縮操作得到的結(jié)果,不保存該壓縮格式的第一文件本身,有效的節(jié)約了存儲(chǔ)空間,避免了對(duì)冗余數(shù)據(jù)的存儲(chǔ),提高了解壓縮處理的效率。