本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,具體而言,涉及一種判斷應(yīng)用程序發(fā)生異常的方法及裝置。
背景技術(shù):
漏洞是指系統(tǒng)中存在的一些功能性或安全性的邏輯缺陷,其可以包括全部導(dǎo)致威脅、損壞計(jì)算機(jī)系統(tǒng)安全的所有因素,是計(jì)算機(jī)系統(tǒng)在硬件、軟件、協(xié)議的具體實(shí)現(xiàn)或系統(tǒng)安全策略上存在的缺陷和不足,從而可以使攻擊者能夠在未經(jīng)授權(quán)的情況下訪問甚至破壞計(jì)算機(jī)系統(tǒng)。
漏洞挖掘是指對(duì)未知漏洞進(jìn)行探索,綜合應(yīng)用各種技術(shù)和工具,盡可能地查找出計(jì)算機(jī)系統(tǒng)中潛在的漏洞。
現(xiàn)有的漏洞挖掘根據(jù)分析對(duì)象不同主要可以分為基于源代碼的漏洞挖掘和基于目標(biāo)代碼的漏洞挖掘。此外,從逆向分析的軟件測(cè)試角度而言,漏洞挖掘又可以分為白箱分析、黑箱分析和灰箱分析。
目前,漏洞挖掘分析技術(shù)主要包括以下幾種:
(1)手工測(cè)試
通過客戶端或服務(wù)器訪問目標(biāo)程序,手動(dòng)向目標(biāo)程序發(fā)送特殊的數(shù)據(jù)(包括:有效輸入和無效輸入),根據(jù)目標(biāo)程序的運(yùn)行狀態(tài)以及對(duì)手動(dòng)輸入數(shù)據(jù)的響應(yīng)來發(fā)現(xiàn)目標(biāo)程序可能存在的安全漏洞。
(2)模糊測(cè)試(fuzzing)
通過使用大量半有效的數(shù)據(jù)(即文件的必要標(biāo)識(shí)部分和大部分?jǐn)?shù)據(jù)是有效的)作為應(yīng)用程序的輸入,以程序運(yùn)行是否發(fā)生異常為標(biāo)志,來發(fā)現(xiàn)應(yīng)用程序中可能存在的安全漏洞。
(3)二進(jìn)制比對(duì)
對(duì)于安全漏洞而言,通常需要配置相應(yīng)的補(bǔ)丁去修復(fù),因此,可以通過比較補(bǔ)丁 修復(fù)前和補(bǔ)丁修復(fù)后的二進(jìn)制文件定位漏洞代碼,再加以數(shù)據(jù)流分析,最終來確定漏洞的位置和成因。
(4)靜態(tài)分析
通過詞法、語法、語義分析檢測(cè)程序中潛在的安全漏洞,其基本原理在于對(duì)應(yīng)用程序的源程序進(jìn)行靜態(tài)掃描分析,重點(diǎn)檢查函數(shù)調(diào)用和返回狀態(tài)。
(5)動(dòng)態(tài)分析
通過在調(diào)試器中運(yùn)行目標(biāo)程序,觀察執(zhí)行過程中程序的運(yùn)行狀態(tài)、內(nèi)存使用狀況以及寄存器的取值來查找安全漏洞。
adobeflashplayer是一款由adobe公司開發(fā)的高級(jí)客戶端運(yùn)行時(shí)使用的多媒體程序播放器,其能夠在各種瀏覽器、操作系統(tǒng)和移動(dòng)設(shè)備上使用,功能強(qiáng)大、兼容性高,其由最初設(shè)計(jì)的播放二維向量動(dòng)畫逐步發(fā)展為適合開發(fā)創(chuàng)造豐富型互聯(lián)網(wǎng)應(yīng)用程序、流視頻/音頻的工具,可以使用矢量圖形技術(shù)來最小化文件的大小并且建立節(jié)省網(wǎng)絡(luò)帶寬和下載時(shí)間的文件,因此,成為嵌入網(wǎng)頁中的小游戲、動(dòng)畫以及圖形用戶界面的常用格式。
基于一個(gè)完整的文件是由多個(gè)不同的字段來組成的,不同的文件類型,其所包含的字段不同,為此,相關(guān)技術(shù)中針對(duì)文件格式所采用的漏洞挖掘技術(shù)采用對(duì)特定文件進(jìn)行格式解析,對(duì)其字段進(jìn)行隨機(jī)修改,然后再重新構(gòu)造成新的修改文件,進(jìn)而測(cè)試應(yīng)用程序是否能夠正常解析上述經(jīng)過修改的文件。如果應(yīng)用程序發(fā)生異常,則說明該應(yīng)用程序可能存在安全缺陷。
目前,各大公司或獨(dú)立安全研究人員針對(duì)adobeflashplayer的漏洞挖掘,主要是采用相關(guān)技術(shù)中提供的對(duì)文件進(jìn)行格式解析并對(duì)其字段進(jìn)行隨機(jī)修改進(jìn)而完成模糊測(cè)試,其安全測(cè)試也只能覆蓋到文件格式的具體字段解析層面,而無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種判斷應(yīng)用程序發(fā)生異常的方法及裝置,以至少解決相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種判斷應(yīng)用程序發(fā)生異常的方法,包括:
在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作;判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
可選地,在向宿主程序發(fā)送控制指令之前,還包括:向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件。
可選地,在向待測(cè)應(yīng)用程序發(fā)送多媒體文件之前,還包括:選取原始的多媒體文件;利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,判斷宿主程序在獲取到控制指令后是否發(fā)生異常包括:判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;如果是,則確定宿主程序在獲取到控制指令后發(fā)生異常;如果否,則確定宿主程序在獲取到控制指令后未發(fā)生異常。
可選地,在確定宿主程序在獲取到控制指令后未發(fā)生異常之后,還包括:對(duì)原始的多媒體文件進(jìn)行更換,并利用模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,控制指令包括以下之一:關(guān)閉宿主程序的顯示窗口的指令;引導(dǎo)宿主程序的處理邏輯重定向的指令。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了另一種判斷應(yīng)用程序發(fā)生異常的方法,包括:
在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
根據(jù)本發(fā)明實(shí)施例的又一方面,還提供了一種判斷應(yīng)用程序發(fā)生異常的裝置,包括:
第一發(fā)送模塊,用于在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程 序中斷對(duì)待播放的多媒體文件的播放操作;判斷模塊,用于判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
可選地,第二發(fā)送模塊,用于向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件。
可選地,上述裝置還包括:選取模塊,用于選取原始的多媒體文件;生成模塊,用于利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,判斷模塊包括:判斷單元,用于判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;第一確定單元,用于在判斷單元輸出為是時(shí),確定宿主程序在獲取到控制指令后發(fā)生異常;第二確定單元,用于在判斷單元輸出為否時(shí),確定宿主程序在獲取到控制指令后未發(fā)生異常。
可選地,選取模塊,還用于對(duì)原始的多媒體文件進(jìn)行更換以及生成模塊,還用于模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,生成模塊,還用于利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選地,控制指令包括以下之一:關(guān)閉宿主程序的顯示窗口的指令;引導(dǎo)宿主程序的處理邏輯重定向的指令。
根據(jù)本發(fā)明實(shí)施例的再一方面,還提供了另一種判斷應(yīng)用程序發(fā)生異常的裝置,包括:
發(fā)送模塊,用于在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;判斷模塊,用于判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
在本發(fā)明實(shí)施例中,采用在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程中通過向待測(cè)應(yīng)用程序的宿主程序發(fā)送用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作的控制指令的方式,通過引入能夠阻斷待測(cè)應(yīng)用程序正常處理邏輯的攻擊方式強(qiáng)制中斷上述播放過程,達(dá)到了通過判斷宿主程序在獲取到控制指令后是否發(fā)生異常(即宿主程序發(fā)生異常用于表明待測(cè)應(yīng)用程序發(fā)生異常)進(jìn)而確定待測(cè)應(yīng)用程序是否存在安全缺陷的目的,從而實(shí)現(xiàn)了通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷的技術(shù)效果,進(jìn)而解 決了相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是本發(fā)明實(shí)施例的一種判斷應(yīng)用程序發(fā)生異常的方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖;
圖2是根據(jù)本發(fā)明實(shí)施例的判斷應(yīng)用程序發(fā)生異常的方法的流程圖;
圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的判斷應(yīng)用程序發(fā)生異常的方法的流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例的另一種判斷應(yīng)用程序發(fā)生異常的方法的流程圖;
圖5是根據(jù)本發(fā)明實(shí)施例的判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖;
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖;
圖7是根據(jù)本發(fā)明實(shí)施例的另一種判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖;
圖8是根據(jù)本發(fā)明實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方 法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
本發(fā)明所涉及到的名詞解釋如下:
(1)應(yīng)用程序是指為完成一項(xiàng)或多項(xiàng)特定工作的計(jì)算機(jī)程序,其運(yùn)行在用戶模式,可以與用戶之間進(jìn)行信息交互,且具有可視的用戶界面。
(2)多媒體文件表示媒體(包括但不限于以下至少之一:文字、圖片、音頻、視頻)的各種編碼數(shù)據(jù)在計(jì)算機(jī)中以文件的形式進(jìn)行存儲(chǔ),是二進(jìn)制數(shù)據(jù)的集合。
(3)宿主程序是指在計(jì)算機(jī)環(huán)境下,軟件賴以生存的軟件環(huán)境。
(4)控制指令是指先由研發(fā)人員編寫代碼然后再由計(jì)算機(jī)按照代碼的編寫規(guī)則加以運(yùn)行,用于執(zhí)行特定的控制操作。
(5)模糊測(cè)試工具是指通過使用大量半有效的數(shù)據(jù)作為應(yīng)用程序的輸入,以程序運(yùn)行是否發(fā)生異常為標(biāo)志,來發(fā)現(xiàn)應(yīng)用程序中可能存在的安全漏洞的安全性檢測(cè)手段。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,還提供了一種判斷應(yīng)用程序發(fā)生異常的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請(qǐng)實(shí)施例一所提供的方法實(shí)施例可以在移動(dòng)終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖1是本發(fā)明實(shí)施例的一種判斷應(yīng)用程序發(fā)生異常的方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖1所示,計(jì)算機(jī)終端10可以包括一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器102(處理器102可以包括但不限于微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器104、以及用于通信功能的傳輸裝置106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲(chǔ)器104可用于存儲(chǔ)應(yīng)用軟件的軟件程序以及模塊,如本發(fā)明實(shí)施例中的判斷應(yīng)用程序發(fā)生異常的方法對(duì)應(yīng)的程序指令/模塊,處理器102通過運(yùn)行存儲(chǔ)在存儲(chǔ)器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的判 斷應(yīng)用程序發(fā)生異常的方法。存儲(chǔ)器104可包括高速隨機(jī)存儲(chǔ)器,還可包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器104可進(jìn)一步包括相對(duì)于處理器102遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端10。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置106包括一個(gè)網(wǎng)絡(luò)適配器(networkinterfacecontroller,簡(jiǎn)稱為nic),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置106可以為射頻(radiofrequency,簡(jiǎn)稱為rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本申請(qǐng)?zhí)峁┝巳鐖D2所示的判斷應(yīng)用程序發(fā)生異常的方法。圖2是根據(jù)本發(fā)明實(shí)施例的判斷應(yīng)用程序發(fā)生異常的方法的流程圖。如圖2所示,該方法可以包括以下處理步驟:
步驟s22:在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作;
在優(yōu)選實(shí)施過程中,上述控制指令可以包括但不限于以下之一:
(1)關(guān)閉宿主程序的顯示窗口的指令;
考慮到待測(cè)應(yīng)用程序是嵌入在宿主程序中的,故而無法直接向待測(cè)應(yīng)用程序發(fā)送控制指令,為此,可以采用向宿主程序發(fā)送控制指令來代替直接向待測(cè)應(yīng)用程序發(fā)送控制指令。此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令影響而發(fā)生異常時(shí),同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常。
當(dāng)待測(cè)應(yīng)用程序?yàn)閍dobeflashplayer以及宿主程序?yàn)闉g覽器時(shí),向宿主程序發(fā)送的控制指令可以是用于關(guān)閉應(yīng)用程序窗口的wm_close命令。
如果通過鍵盤或鼠標(biāo)在系統(tǒng)菜單中選擇了“關(guān)閉”或者點(diǎn)擊了窗口右上角的“x”按鈕,瀏覽器的窗口過程便會(huì)接收到wm_close指令。此時(shí),窗口消息處理程序發(fā)送wm_syscommand指令并經(jīng)由wndproc函數(shù)將這個(gè)指令傳遞給defwindowproc函數(shù)。defwindowproc函數(shù)向窗口消息處理程序返回wm_close響應(yīng)指令。wndproc函數(shù)首先再次將wm_close指令傳遞給defwindowproc函數(shù);其次,wndproc呼叫destroywindow函數(shù)來響應(yīng)這條wm_close指令,destroywindow函數(shù)會(huì)觸發(fā)windows向窗口消息處理程序發(fā)送一條wm_destroy指令;然后,wndproc函數(shù)再呼叫postquitmessage函數(shù), 將一條wm_quit指令放入消息隊(duì)列中,以此來響應(yīng)wm_close指令。wm_quit指令將導(dǎo)致winmain中的消息循環(huán)終止,進(jìn)而程序結(jié)束。
當(dāng)然,還可以選擇讓用戶自身來確定是否真的需要關(guān)閉瀏覽器窗口,例如:詢問用戶是否需要保存更改。如果用戶選擇“取消”,則可以忽略wm_close指令,那么瀏覽器照常運(yùn)行;如果用戶確認(rèn)要退出,則需要調(diào)用destroywindow函數(shù)。
(2)引導(dǎo)宿主程序的處理邏輯重定向的指令。
宿主程序(例如:瀏覽器)可以提供一系列與互聯(lián)網(wǎng)瀏覽相關(guān)的選項(xiàng),其中,可以包括瀏覽器初次啟動(dòng)時(shí)缺省瀏覽的主頁設(shè)置一項(xiàng)。從瀏覽器的菜單中選“工具”→“internet選項(xiàng)”,便會(huì)彈出internet選項(xiàng)窗口,如果選取其中的常規(guī)頁,在第1項(xiàng)中可填入用戶希望設(shè)置的缺省頁網(wǎng)址;當(dāng)然,也可按下左邊按鈕“使用當(dāng)前頁”,將當(dāng)前瀏覽器正在瀏覽的頁面設(shè)置為缺省打開頁;另外,還可按下右邊按鈕“使用空白頁”(此時(shí),網(wǎng)址欄內(nèi)會(huì)自動(dòng)寫入about:bland),其默認(rèn)為瀏覽器啟動(dòng)時(shí)不會(huì)自動(dòng)打開任何頁面。
通過設(shè)置缺省頁網(wǎng)址可以在待測(cè)應(yīng)用程序(例如:adobeflashplayer)對(duì)獲取到的多媒體文件進(jìn)行播放的過程中,可以將當(dāng)前準(zhǔn)備播放多媒體文件的網(wǎng)頁重定向至缺省頁網(wǎng)址,以強(qiáng)制中斷待測(cè)應(yīng)用程序?qū)Λ@取到的多媒體文件正在執(zhí)行的解析的過程。此時(shí),待測(cè)應(yīng)用程序中負(fù)責(zé)對(duì)多媒體文件進(jìn)行播放的解析功能模塊立即進(jìn)入收尾釋放流程。然而,當(dāng)前執(zhí)行的多媒體文件播放過程可能并未結(jié)束,由于控制指令強(qiáng)行中斷上述播放過程,可能會(huì)導(dǎo)致待測(cè)應(yīng)用程序發(fā)生處理邏輯混亂(例如:原先希望通過將任務(wù)(包括:高延遲操作和長(zhǎng)時(shí)間運(yùn)行計(jì)算)分載到多個(gè)并發(fā)運(yùn)行的后臺(tái)工作線程來利用更多的計(jì)算機(jī)資源,從而創(chuàng)建響應(yīng)更快的內(nèi)容,然而,在被控制指令強(qiáng)行中斷后,多個(gè)并發(fā)線程之間很有可能未能及時(shí)同步而導(dǎo)致處理邏輯混亂),由此引發(fā)多種應(yīng)用程序的安全缺陷,例如:已經(jīng)被釋放的數(shù)據(jù)又被重新利用的安全缺陷,其可以允許攻擊者通過構(gòu)造未定義向量發(fā)起遠(yuǎn)程代碼執(zhí)行的攻擊,可以被用來進(jìn)行網(wǎng)頁掛靠木馬和病毒傳播,通過瀏覽器打開畸形的.swf文件會(huì)誘發(fā)此安全缺陷。
步驟s24:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
通過采用向宿主程序發(fā)送控制指令來代替直接向待測(cè)應(yīng)用程序發(fā)送控制指令的方式,此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而正常結(jié)束時(shí),則不會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常;但是,如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而發(fā)生異常時(shí),那么同樣也會(huì)導(dǎo)致其宿 主程序隨之發(fā)生異常。
相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷采用如圖2所示的方法,在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程中通過向待測(cè)應(yīng)用程序的宿主程序發(fā)送用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件正在執(zhí)行的解析操作的控制指令的方式,通過引入能夠阻斷待測(cè)應(yīng)用程序正常處理邏輯的攻擊方式強(qiáng)制中斷上述播放過程,達(dá)到了通過判斷宿主程序在獲取到控制指令后是否發(fā)生異常進(jìn)而確定待測(cè)應(yīng)用程序是否存在安全缺陷的目的,從而實(shí)現(xiàn)了通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
可選地,在步驟s22,向宿主程序發(fā)送控制指令之前,還可以包括以下步驟:
步驟s20:向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件;
上述待測(cè)應(yīng)用程序可以但不限于是嵌入宿主程序(例如:瀏覽器)的播放器插件應(yīng)用程序(例如:adobeflashplayer)。該adobeflashplayer可以適用于windows,linux,solaris,androidpre-ics以及androidics操作系統(tǒng)。如果需要在adobeflashplayer上播放音頻/視頻文件,可以通過鍵盤事件、鼠標(biāo)事件、窗口事件、觸摸和手勢(shì)事件來觸發(fā)adobeflashplayer從服務(wù)器獲取待播放的音頻/視頻文件,然后,adobeflashplayer在對(duì)接收到的待播放的音頻/視頻文件中的音頻/視頻數(shù)據(jù)解壓后對(duì)待播放的音頻/視頻文件進(jìn)行播放。待播放的多媒體文件的格式可以包括但不限于:.flv,.mp4,.swf。
可選地,在步驟s20,向待測(cè)應(yīng)用程序發(fā)送多媒體文件之前,還可以包括以下執(zhí)行步驟:
步驟s18:選取原始的多媒體文件;
步驟s19:利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
本發(fā)明優(yōu)選實(shí)施例所提供的技術(shù)方案不僅可以通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷,還可以借助于瀏覽器特性,將判斷應(yīng)用程序在處理邏輯維度上的安全缺陷與通過模糊測(cè)試判斷出的文件格式的具體字段解析層面相結(jié)合,同時(shí)在多個(gè)維度上尋找應(yīng)用程序可能存在的安全隱患。
在實(shí)際應(yīng)用場(chǎng)景中,既可以采用blindfuzz在原始的多媒體文件中的隨機(jī)位置上修改數(shù)據(jù)來生成待播放的多媒體文件進(jìn)而從文件格式的具體字段解析層面來挖掘待測(cè)應(yīng)用程序可能存在的安全缺陷,也可以采用smartfuzz通過解析原始的多媒體文件所對(duì)應(yīng)的文件格式,然后基于樣本和變異來生成待播放的多媒體文件進(jìn)而從文件格式的具體字段解析層面來挖掘待測(cè)應(yīng)用程序可能存在的安全缺陷。
具體地,首先可以對(duì)原始的多媒體文件的文件格式進(jìn)行分析,查找原始的多媒體文件的脆弱點(diǎn)(即在原始的多媒體文件中可能觸發(fā)漏洞的數(shù)據(jù)段)并定位文件的脆弱點(diǎn),例如:在視頻幀中可以自定義的幀頭字符。其次,通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成待播放的多媒體文件。然后,在生成待播放的多媒體文件之后,便可以調(diào)用待測(cè)應(yīng)用程序打開待播放的多媒體文件,如果能夠正常運(yùn)行,則構(gòu)造新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。在未發(fā)生異常的情況下,可以說明從文件格式的具體字段解析層面來看,尚未發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。如果在測(cè)試過程中,待測(cè)應(yīng)用程序出現(xiàn)異常退出,則說明從文件格式的具體字段解析層面來看,已經(jīng)發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。
在對(duì)待測(cè)應(yīng)用程序進(jìn)行模糊測(cè)試的基礎(chǔ)上,再進(jìn)一步通過采用向宿主程序發(fā)送控制指令來代替直接向待測(cè)應(yīng)用程序發(fā)送控制指令的方式,此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而正常結(jié)束時(shí),則不會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常;但是,如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而發(fā)生異常時(shí),那么同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常,由此說明待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。
可選地,在步驟s24中,判斷宿主程序在獲取到控制指令后是否發(fā)生異常可以包括以下執(zhí)行步驟:
步驟s241:判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;
步驟s242:如果是,則確定宿主程序在獲取到控制指令后發(fā)生異常;
步驟s243:如果否,則確定宿主程序在獲取到控制指令后未發(fā)生異常。
在向宿主程序發(fā)送控制指令之前,可以先對(duì)原始的多媒體文件的文件格式進(jìn)行分析,查找原始的多媒體文件的脆弱點(diǎn)并定位文件的脆弱點(diǎn),再通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成待播放的多媒體文件。然后,在生成待播放的多媒體文件之后,便可以調(diào)用待測(cè)應(yīng)用程序打開待播放的多媒體文件,如果能夠正常運(yùn)行,則構(gòu)造 新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。在未發(fā)生異常的情況下,可以說明從文件格式的具體字段解析層面來看,尚未發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。如果在測(cè)試過程中,待測(cè)應(yīng)用程序出現(xiàn)異常退出,則說明從文件格式的具體字段解析層面來看,已經(jīng)發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。此時(shí),會(huì)在宿主程序所在的屏幕顯示界面內(nèi)彈出告警對(duì)話框,告知用戶“flashplayer.exe遇到問題需要關(guān)閉”,由此可以提示用戶在對(duì)待測(cè)應(yīng)用程序進(jìn)行模式測(cè)試的過程中發(fā)現(xiàn)其在文件格式的具體字段解析層面存在安全缺陷。
在對(duì)待測(cè)應(yīng)用程序進(jìn)行模糊測(cè)試的基礎(chǔ)上,向宿主程序發(fā)送控制指令,此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而正常結(jié)束時(shí),則不會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常;但是,如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而發(fā)生異常時(shí),那么同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常,由此說明待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。此時(shí),同樣會(huì)在宿主程序所在的屏幕顯示界面內(nèi)彈出告警對(duì)話框,告知用戶“flashplayer.exe遇到問題需要關(guān)閉”,由此可以提示用戶待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。
可選地,在步驟s243,確定宿主程序在獲取到控制指令后未發(fā)生異常之后,還可以包括:
步驟s244:對(duì)原始的多媒體文件進(jìn)行更換,并利用模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件;或者,利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
無論是在文件格式的具體字段解析層面上還是在處理邏輯維度上,如果在一次測(cè)試完成后未能發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷,那么則可以不斷構(gòu)造新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。具體地,可以重新選取新的原始的多媒體文件,例如:上一次測(cè)試推送給待測(cè)應(yīng)用程序的是.mp4格式的視頻文件,那么本次測(cè)試則可以向待測(cè)應(yīng)用程序推送.flv格式的視頻文件,然后,重新查找原始的多媒體文件的脆弱點(diǎn)并定位文件的脆弱點(diǎn),再通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成新的待播放的多媒體文件。或者,始終保持同一個(gè)原始的多媒體文件(例如:.mp4格式的視頻文件),然后通過更換脆弱點(diǎn)或者更換脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成新的待播放的多媒體文件。
下面將結(jié)合圖3所示的優(yōu)選實(shí)施方式對(duì)上述優(yōu)選實(shí)施過程作進(jìn)一步地描述。
圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的判斷應(yīng)用程序發(fā)生異常的方法的流程圖。如圖3所示,該流程可以包括以下處理步驟:
步驟s31:adobeflashplayer視頻播放器(相當(dāng)于上述待測(cè)應(yīng)用程序)可以解析多種視頻文件格式,例如:.mp4,.flv,.wma,.wmv,.swf。為此,需要先選取一個(gè)可以被adobeflashplayer視頻播放器正常解析的視頻文件(相當(dāng)于上述原始的多媒體文件)。
在該優(yōu)選實(shí)施例中,視頻文件的格式采用.mp4。
步驟s32:使用針對(duì)文件格式進(jìn)行漏洞挖掘的模糊測(cè)試方法對(duì)文件格式進(jìn)行修改,生成畸形.mp4測(cè)試用例(相當(dāng)于上述待播放的多媒體文件)。
步驟s33:在瀏覽器(相當(dāng)于上述宿主程序)中,使用adobeflashplayer視頻播放器加載并解析已經(jīng)生成的畸形.mp4測(cè)試用例。
步驟s34:在使用adobeflashplayer視頻播放器加載并解析已經(jīng)生成的畸形.mp4測(cè)試用例的過程中,對(duì)瀏覽器發(fā)送wm_close消息或強(qiáng)行將瀏覽器跳轉(zhuǎn)到about::bland頁面(相當(dāng)于上述向宿主程序發(fā)送控制指令),由此導(dǎo)致adobeflashplayer視頻播放器的視頻播放過程被強(qiáng)行中斷,adobeflashplayer視頻播放器內(nèi)的解析模塊立即進(jìn)入收尾釋放流程。而此時(shí)已經(jīng)生成的畸形.mp4測(cè)試用例的播放過程可能尚未結(jié)束,由于用戶強(qiáng)行中斷播放過程,可能會(huì)引發(fā)adobeflashplayer視頻播放器的應(yīng)用程序出現(xiàn)邏輯混亂,誘發(fā)安全缺陷(例如:釋放后重用、二次釋放)。
步驟s35:判斷瀏覽器是否發(fā)生異常;如果是,則繼續(xù)執(zhí)行步驟s36;如果否,則返回步驟s32,開啟下一輪測(cè)試。
步驟s36:若adobeflashplayer視頻播放器發(fā)生異常,則會(huì)導(dǎo)致其宿主程序(瀏覽器)也隨之發(fā)生異常,進(jìn)而表示本次測(cè)試成功,發(fā)現(xiàn)adobeflashplayer視頻播放器在處理邏輯維度上存在安全缺陷。
在本發(fā)明提供的另一個(gè)實(shí)施例中,還提供了另一種判斷應(yīng)用程序發(fā)生異常的方法。圖4是根據(jù)本發(fā)明實(shí)施例的另一種判斷應(yīng)用程序發(fā)生異常的方法的流程圖。如圖4所示,該方法可以包括以下處理步驟:
步驟s40:在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;
步驟s42:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
在本實(shí)施例中,在待測(cè)應(yīng)用程序執(zhí)行過程中(例如:多媒體文件播放軟件對(duì)多媒體文件進(jìn)行播放),可以通過向待測(cè)應(yīng)用程序的宿主程序發(fā)送用于觸發(fā)待測(cè)應(yīng)用程序中 斷執(zhí)行當(dāng)前正在執(zhí)行的操作的控制指令的方式,通過引入能夠阻斷待測(cè)應(yīng)用程序正常處理邏輯的攻擊方式強(qiáng)制中斷上述執(zhí)行過程,達(dá)到了通過判斷宿主程序在獲取到控制指令后是否發(fā)生異常進(jìn)而確定待測(cè)應(yīng)用程序是否存在安全缺陷的目的,從而實(shí)現(xiàn)了通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的判斷應(yīng)用程序發(fā)生異常的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述判斷應(yīng)用程序發(fā)生異常的方法的裝置實(shí)施例,圖5是根據(jù)本發(fā)明實(shí)施例的判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖。如圖5所示,該裝置包括:第一發(fā)送模塊10,用于在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作;判斷模塊20,用于判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
在優(yōu)選實(shí)施過程中,上述控制指令可以包括但不限于以下之一:
(1)關(guān)閉宿主程序的顯示窗口的指令;
考慮到待測(cè)應(yīng)用程序是嵌入在宿主程序中的,故而無法直接向待測(cè)應(yīng)用程序發(fā)送控制指令,為此,可以采用向宿主程序發(fā)送控制指令來代替直接向待測(cè)應(yīng)用程序發(fā)送 控制指令。此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令影響而發(fā)生異常時(shí),同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常。
當(dāng)待測(cè)應(yīng)用程序?yàn)閍dobeflashplayer以及宿主程序?yàn)闉g覽器時(shí),向宿主程序發(fā)送的控制指令可以是用于關(guān)閉應(yīng)用程序窗口的wm_close命令。
如果通過鍵盤或鼠標(biāo)在系統(tǒng)菜單中選擇了“關(guān)閉”或者點(diǎn)擊了窗口右上角的“x”按鈕,瀏覽器的窗口過程便會(huì)接收到wm_close指令。此時(shí),窗口消息處理程序發(fā)送wm_syscommand指令并經(jīng)由wndproc函數(shù)將這個(gè)指令傳遞給defwindowproc函數(shù)。defwindowproc函數(shù)向窗口消息處理程序返回wm_close響應(yīng)指令。wndproc函數(shù)首先再次將wm_close指令傳遞給defwindowproc函數(shù);其次,wndproc呼叫destroywindow函數(shù)來響應(yīng)這條wm_close指令,destroywindow函數(shù)會(huì)觸發(fā)windows向窗口消息處理程序發(fā)送一條wm_destroy指令;然后,wndproc函數(shù)再呼叫postquitmessage函數(shù),將一條wm_quit指令放入消息隊(duì)列中,以此來響應(yīng)wm_close指令。wm_quit指令將導(dǎo)致winmain中的消息循環(huán)終止,進(jìn)而程序結(jié)束。
當(dāng)然,還可以選擇讓用戶自身來確定是否真的需要關(guān)閉瀏覽器窗口,例如:詢問用戶是否需要保存更改。如果用戶選擇“取消”,則可以忽略wm_close指令,那么瀏覽器照常運(yùn)行;如果用戶確認(rèn)要退出,則需要調(diào)用destroywindow函數(shù)。
(2)引導(dǎo)宿主程序的處理邏輯重定向的指令。
宿主程序(例如:瀏覽器)可以提供一系列與互聯(lián)網(wǎng)瀏覽相關(guān)的選項(xiàng),其中,可以包括瀏覽器初次啟動(dòng)時(shí)缺省瀏覽的主頁設(shè)置一項(xiàng)。從瀏覽器的菜單中選“工具”→“internet選項(xiàng)”,便會(huì)彈出internet選項(xiàng)窗口,如果選取其中的常規(guī)頁,在第1項(xiàng)中可填入用戶希望設(shè)置的缺省頁網(wǎng)址;當(dāng)然,也可按下左邊按鈕“使用當(dāng)前頁”,將當(dāng)前瀏覽器正在瀏覽的頁面設(shè)置為缺省打開頁;另外,還可按下右邊按鈕“使用空白頁”(此時(shí),網(wǎng)址欄內(nèi)會(huì)自動(dòng)寫入about:bland),其默認(rèn)為瀏覽器啟動(dòng)時(shí)不會(huì)自動(dòng)打開任何頁面。
通過設(shè)置缺省頁網(wǎng)址可以在待測(cè)應(yīng)用程序(例如:adobeflashplayer)對(duì)獲取到的多媒體文件進(jìn)行播放的過程中,可以將當(dāng)前準(zhǔn)備播放多媒體文件的網(wǎng)頁重定向至缺省頁網(wǎng)址,以強(qiáng)制中斷待測(cè)應(yīng)用程序?qū)Λ@取到的多媒體文件正在執(zhí)行的解析的過程。此時(shí),待測(cè)應(yīng)用程序中負(fù)責(zé)對(duì)多媒體文件進(jìn)行播放的解析功能模塊立即進(jìn)入收尾釋放流程。然而,當(dāng)前執(zhí)行的多媒體文件播放過程可能并未結(jié)束,由于控制指令強(qiáng)行中斷上述播放過程,可能會(huì)導(dǎo)致待測(cè)應(yīng)用程序發(fā)生處理邏輯混亂(例如:原先希望通過將任務(wù)(包括:高延遲操作和長(zhǎng)時(shí)間運(yùn)行計(jì)算)分載到多個(gè)并發(fā)運(yùn)行的后臺(tái)工作線程來 利用更多的計(jì)算機(jī)資源,從而創(chuàng)建響應(yīng)更快的內(nèi)容,然而,在被控制指令強(qiáng)行中斷后,多個(gè)并發(fā)線程之間很有可能未能及時(shí)同步而導(dǎo)致處理邏輯混亂),由此引發(fā)多種應(yīng)用程序的安全缺陷,例如:已經(jīng)被釋放的數(shù)據(jù)又被重新利用的安全缺陷,其可以允許攻擊者通過構(gòu)造未定義向量發(fā)起遠(yuǎn)程代碼執(zhí)行的攻擊,可以被用來進(jìn)行網(wǎng)頁掛靠木馬和病毒傳播,通過瀏覽器打開畸形的.swf文件會(huì)誘發(fā)此安全缺陷。
相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷采用如圖5所示的裝置,在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程中通過向待測(cè)應(yīng)用程序的宿主程序發(fā)送用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作的控制指令的方式,通過引入能夠阻斷待測(cè)應(yīng)用程序正常處理邏輯的攻擊方式強(qiáng)制中斷上述播放過程,達(dá)到了通過判斷宿主程序在獲取到控制指令后是否發(fā)生異常進(jìn)而確定待測(cè)應(yīng)用程序是否存在安全缺陷的目的,從而實(shí)現(xiàn)了通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
可選地,圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖。如圖6所示,上述裝置還包括:第二發(fā)送模塊30,用于向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件。
可選地,如圖6所示,上述裝置還包括:選取模塊40,用于選取原始的多媒體文件;生成模塊50,用于利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
本發(fā)明優(yōu)選實(shí)施例所提供的技術(shù)方案不僅可以通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷,還可以借助于瀏覽器特性,將判斷應(yīng)用程序在處理邏輯維度上的安全缺陷與通過模糊測(cè)試判斷出的文件格式的具體字段解析層面相結(jié)合,同時(shí)在多個(gè)維度上尋找應(yīng)用程序可能存在的安全隱患。
具體地,首先可以對(duì)原始的多媒體文件的文件格式進(jìn)行分析,查找原始的多媒體文件的脆弱點(diǎn)(即在原始的多媒體文件中可能觸發(fā)漏洞的數(shù)據(jù)段)并定位文件的脆弱點(diǎn),例如:在視頻幀中可以自定義的幀頭字符。其次,通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成待播放的多媒體文件。然后,在生成待播放的多媒體文件之后,便可以調(diào)用待測(cè)應(yīng)用程序打開待播放的多媒體文件,如果能夠正常運(yùn)行,則構(gòu)造新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。在未發(fā)生異常的情況下,可以說明從文件格式的具體字段解析層面來看,尚未發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。如果在 測(cè)試過程中,待測(cè)應(yīng)用程序出現(xiàn)異常退出,則說明從文件格式的具體字段解析層面來看,已經(jīng)發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。
在對(duì)待測(cè)應(yīng)用程序進(jìn)行模糊測(cè)試的基礎(chǔ)上,再進(jìn)一步通過采用向宿主程序發(fā)送控制指令來代替直接向待測(cè)應(yīng)用程序發(fā)送控制指令的方式,此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而正常結(jié)束時(shí),則不會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常;但是,如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而發(fā)生異常時(shí),那么同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常,由此說明待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。
可選地,如圖6所示,判斷模塊20可以包括:判斷單元200,用于判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;第一確定單元202,用于在判斷單元輸出為是時(shí),確定宿主程序在獲取到控制指令后發(fā)生異常;第二確定單元204,用于在判斷單元輸出為否時(shí),確定宿主程序在獲取到控制指令后未發(fā)生異常。
在向宿主程序發(fā)送控制指令之前,可以先對(duì)原始的多媒體文件的文件格式進(jìn)行分析,查找原始的多媒體文件的脆弱點(diǎn)并定位文件的脆弱點(diǎn),再通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成待播放的多媒體文件。然后,在生成待播放的多媒體文件之后,便可以調(diào)用待測(cè)應(yīng)用程序打開待播放的多媒體文件,如果能夠正常運(yùn)行,則構(gòu)造新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。在未發(fā)生異常的情況下,可以說明從文件格式的具體字段解析層面來看,尚未發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。如果在測(cè)試過程中,待測(cè)應(yīng)用程序出現(xiàn)異常退出,則說明從文件格式的具體字段解析層面來看,已經(jīng)發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷。此時(shí),會(huì)在宿主程序所在的屏幕顯示界面內(nèi)彈出告警對(duì)話框,告知用戶“flashplayer.exe遇到問題需要關(guān)閉”,由此可以提示用戶在對(duì)待測(cè)應(yīng)用程序進(jìn)行模式測(cè)試的過程中發(fā)現(xiàn)其在文件格式的具體字段解析層面存在安全缺陷。
在對(duì)待測(cè)應(yīng)用程序進(jìn)行模糊測(cè)試的基礎(chǔ)上,向宿主程序發(fā)送控制指令,此時(shí),如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而正常結(jié)束時(shí),則不會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常;但是,如果待測(cè)應(yīng)用程序因受到控制指令強(qiáng)制中斷其對(duì)多媒體文件的播放過程而發(fā)生異常時(shí),那么同樣也會(huì)導(dǎo)致其宿主程序隨之發(fā)生異常,由此說明待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。此時(shí),同樣會(huì)在宿主程序所在的屏幕顯示界面內(nèi)彈出告警對(duì)話框,告知用戶“flashplayer.exe遇到問題需要關(guān)閉”,由此可以提示用戶待測(cè)應(yīng)用程序在處理邏輯維度上存在安全缺陷。
可選地,選取模塊40,還用于對(duì)原始的多媒體文件進(jìn)行更換以及生成模塊50,還用于模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件;或者,生成模塊50,還用于利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
無論是在文件格式的具體字段解析層面上還是在處理邏輯維度上,如果在一次測(cè)試完成后未能發(fā)現(xiàn)待測(cè)應(yīng)用程序存在安全缺陷,那么則可以不斷構(gòu)造新的待播放的多媒體文件,直至測(cè)試用例全部執(zhí)行完畢。具體地,可以重新選取新的原始的多媒體文件,例如:上一次測(cè)試推送給待測(cè)應(yīng)用程序的是.mp4格式的視頻文件,那么本次測(cè)試則可以向待測(cè)應(yīng)用程序推送.flv格式的視頻文件,然后,重新查找原始的多媒體文件的脆弱點(diǎn)并定位文件的脆弱點(diǎn),再通過確定脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成新的待播放的多媒體文件?;蛘撸冀K保持同一個(gè)原始的多媒體文件(例如:.mp4格式的視頻文件),然后通過更換脆弱點(diǎn)或者更換脆弱點(diǎn)需要填充的內(nèi)容和長(zhǎng)度便可生成新的待播放的多媒體文件。
在本實(shí)施例中,還提供了另一種判斷應(yīng)用程序發(fā)生異常的裝置。圖7是根據(jù)本發(fā)明實(shí)施例的另一種判斷應(yīng)用程序發(fā)生異常的裝置的結(jié)構(gòu)框圖。如圖7所示,該裝置可以包括:發(fā)送模塊70,用于在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;判斷模塊72,用于判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
實(shí)施例3
本發(fā)明的實(shí)施例可以提供一種計(jì)算機(jī)終端,該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端設(shè)備。可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端也可以替換為移動(dòng)終端等終端設(shè)備。
可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端可以位于計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備。
可選地,圖8是根據(jù)本發(fā)明實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。如圖8所示,該計(jì)算機(jī)終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器以及存儲(chǔ)器。
其中,存儲(chǔ)器可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的判斷應(yīng)用程序發(fā)生異常的方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器通過運(yùn)行存儲(chǔ)在存儲(chǔ)器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的判斷應(yīng)用程序發(fā) 生異常的方法。存儲(chǔ)器可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器可進(jìn)一步包括相對(duì)于處理器遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
處理器可以通過傳輸裝置調(diào)用存儲(chǔ)器存儲(chǔ)的信息及應(yīng)用程序,以執(zhí)行下述步驟:
s1:在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作;
s2:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:選取原始的多媒體文件;利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;如果是,則確定宿主程序在獲取到控制指令后發(fā)生異常;如果否,則確定宿主程序在獲取到控制指令后未發(fā)生異常。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:對(duì)原始的多媒體文件進(jìn)行更換,并利用模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:將控制指令設(shè)置為關(guān)閉宿主程序的顯示窗口的指令或者引導(dǎo)宿主程序的處理邏輯重定向的指令。
采用本發(fā)明實(shí)施例,在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程中通過向待測(cè)應(yīng)用程序的宿主程序發(fā)送用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放的多媒體文件的播放操作的控制指令的方式,通過引入能夠阻斷待測(cè)應(yīng)用程序正常處理邏輯的攻擊 方式強(qiáng)制中斷上述播放過程,達(dá)到了通過判斷宿主程序在獲取到控制指令后是否發(fā)生異常進(jìn)而確定待測(cè)應(yīng)用程序是否存在安全缺陷的目的,從而實(shí)現(xiàn)了通過構(gòu)造強(qiáng)行中斷指令,強(qiáng)制打破應(yīng)用程序的正常處理邏輯來獲取應(yīng)用程序在處理邏輯維度上的安全缺陷的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中所提供的漏洞挖掘方式無法發(fā)現(xiàn)應(yīng)用程序在處理邏輯方面存在的缺陷的技術(shù)問題。
另外,本實(shí)施例中提到的上述處理器還可以通過傳輸裝置調(diào)用存儲(chǔ)器存儲(chǔ)的信息及應(yīng)用程序,以執(zhí)行下述步驟:
s1:在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;
s2:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
本領(lǐng)域普通技術(shù)人員可以理解,圖8所示的結(jié)構(gòu)僅為示意,計(jì)算機(jī)終端也可以是智能手機(jī)(如android手機(jī)、ios手機(jī)等)、平板電腦、掌聲電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖8其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端還可包括比圖8中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖8所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(read-onlymemory,簡(jiǎn)稱為rom)、隨機(jī)存取器(randomaccessmemory,簡(jiǎn)稱為ram)、磁盤或光盤等。
實(shí)施例4
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于保存上述實(shí)施例一所提供的判斷應(yīng)用程序發(fā)生異常的方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端中,或者位于移動(dòng)終端群中的任意一個(gè)移動(dòng)終端中。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s1:在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件執(zhí)行播放操作的過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷對(duì)待播放 的多媒體文件的播放操作;
s2:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:向待測(cè)應(yīng)用程序發(fā)送待播放的多媒體文件。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:選取原始的多媒體文件;利用模糊測(cè)試工具對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:判斷當(dāng)前是否彈出與控制指令對(duì)應(yīng)的告警提示信息,其中,告警提示信息是在待測(cè)應(yīng)用程序?qū)Υシ诺亩嗝襟w文件進(jìn)行播放的過程被控制指令中斷后發(fā)生異常時(shí)觸發(fā)的;如果是,則確定宿主程序在獲取到控制指令后發(fā)生異常;如果否,則確定宿主程序在獲取到控制指令后未發(fā)生異常。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:對(duì)原始的多媒體文件進(jìn)行更換,并利用模糊測(cè)試工具對(duì)更換后的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:利用模糊測(cè)試工具重新對(duì)原始的多媒體文件的格式進(jìn)行修改,生成待播放的多媒體文件。
可選的,上述存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:將控制指令設(shè)置為關(guān)閉宿主程序的顯示窗口的指令或者引導(dǎo)宿主程序的處理邏輯重定向的指令。
另外,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)還可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s1:在待測(cè)應(yīng)用程序執(zhí)行過程中,向待測(cè)應(yīng)用程序的宿主程序發(fā)送控制指令,其中,控制指令用于觸發(fā)待測(cè)應(yīng)用程序中斷執(zhí)行;
s2:判斷宿主程序在獲取到控制指令后是否發(fā)生異常,其中,宿主程序發(fā)生異常表明待測(cè)應(yīng)用程序發(fā)生異常。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。