專利名稱:Swf文件批量加密方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻播放技術(shù),尤其涉及一種SWF文件批量加密方法及裝置。
背景技術(shù):
SffF文件是Flash的專用格式,是一種支持矢量和點(diǎn)陣圖形的動畫文件格式,被廣泛應(yīng)用于網(wǎng)頁設(shè)計(jì),動畫制作等領(lǐng)域,SWF文件通常也被稱為Flash文件。通常游戲開發(fā)者為了保護(hù)自己的編寫的SWF文件不被隨便盜用修改,通常會對SWF文件進(jìn)行加密。
在傳統(tǒng)技術(shù)中,對SWF文件進(jìn)行加密的手段為從網(wǎng)上下載可以進(jìn)行加密的軟件,對單個SWF文件進(jìn)行加密。但上述方法只能對單個SWF文件加密,效率低下,而且需要用戶自己從網(wǎng)上下載應(yīng)用文件,占用硬盤空間。發(fā)明內(nèi)容
針對傳統(tǒng)技術(shù)的上述缺陷,本發(fā)明實(shí)施例提供一種SWF文件批量加密方法及裝置,使得用戶可以通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。
本發(fā)明實(shí)施例提供一種SWF文件批量加密方法,包括:
獲取用戶上傳的源SWF文件;
通過二進(jìn)制流讀取所述源SWF文件,解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型;
若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密;
若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密;
重組加密后的所有標(biāo)簽,生成加密SWF文件。
優(yōu)選的,在根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型步驟之前,還包括:
根據(jù)所述文件頭信息判斷所述源SWF文件是否是壓縮文件,若是則解壓所述源SWF文件。
優(yōu)選的,若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密步驟,包括:
根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽;
根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION標(biāo)簽;解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。優(yōu)選的,若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密步驟,包括:根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽;根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS標(biāo)簽;解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。本發(fā)明實(shí)施例提供一種SWF文件批量加密裝置,包括:接收模塊,用于獲取用戶上傳的源SWF文件;第一判斷模塊,解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型;第一加密模塊,用于若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密;第二加密模塊,用于若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密;重組模塊,用于重組加密后的所有標(biāo)簽,生成加密SWF文件。優(yōu)選的,該裝置還包括:第二判斷模塊,用于根據(jù)所述文件頭信息判斷所述源SWF文件是否是壓縮文件,若是則解壓所述源SWF文件。優(yōu)選的,第一加密模塊包括:第一定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽;第二定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION 標(biāo)簽;第一混淆單元,用于解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
優(yōu)選的,第二加密模塊包括:
第三定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽;
第四定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS 標(biāo)簽;
第二混淆單元,用于解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SffF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
本實(shí)施例的技術(shù)方案中,用戶通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。
圖1為本發(fā)明SWF文件批量加密方法第一實(shí)施例的流程圖2為本發(fā)明SWF文件批量加密裝置第一實(shí)施例的結(jié)構(gòu)示意圖3為本發(fā)明SWF文件批量加密裝置第二實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
圖1為本發(fā)明SWF文件批量加密方法第一實(shí)施例的流程圖,如圖1所示,本實(shí)施例所提供的SWF文件批量加密方法由SWF文件批量加密裝置執(zhí)行,該裝置設(shè)于網(wǎng)絡(luò)側(cè)的服務(wù)器上,該裝置獲取用戶從終端側(cè)批量上傳源SWF文件,分別對每個源SWF文件進(jìn)行加密,并將加密的源SWF文件壓縮發(fā)送至終端的本地目錄。該裝置可以采用軟件和/或硬件的形式來實(shí)現(xiàn),該方法包括:
步驟S100,獲取用戶上傳的源SWF文件;
步驟S102,解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型,若所述源SWF文件的版本類型為AVMl類型,則進(jìn)入步驟S104 ;若所述源SWF文件的版本類型為AVM2類型,則進(jìn)入步驟S106 ;
步驟S104,根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密;
步驟S106,根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密;
步驟S108,重組加密后的所有標(biāo)簽,生成加密SWF文件。
具體地,SWF文件由文件頭和數(shù)據(jù)體組成;其中,數(shù)據(jù)體由多個不同種類的標(biāo)簽定義得到。例如:形狀定義標(biāo)簽、聲音定義標(biāo)簽和結(jié)束標(biāo)簽等。當(dāng)SWF文件由as2.0代碼編寫生成時,存儲as2.0代碼的標(biāo)簽為DOACTION標(biāo)簽和DOINITACTION標(biāo)簽。當(dāng)SWF文件由as3.0代碼編寫生成時,存儲as3.0代碼的標(biāo)簽為DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽。當(dāng)SWF文件批量加密裝置接收用戶上傳的批量源SWF文件后,首先需要對每個源SffF文件進(jìn)行解析,具體的解析方法可以為通過二進(jìn)制流讀取每個源SWF文件,解析源SWF文件中的文件頭信息,其中包括該源SWF文件的版本信息,例如0x06表示版本6。根據(jù)版本信息判斷源SWF文件的版本類型屬于AVMl類型或AVM2類型,AVMl類型是由as2.0代碼編寫生成的,AVM2類型是由as3.0代碼編寫生成,不同類型的SWF文件,其文件頭中的版本信息不同。進(jìn)一步地,用戶在上傳源SWF文件時,源SWF文件可能是壓縮過的文件,因此在對該文件進(jìn)行加密之前需要判斷該文件是否被壓縮,若是則需要先解壓縮。源SWF文件的文件頭以三個標(biāo)識符開始,所述的三個標(biāo)志符是0x46、0x57和0x53或0x46、0x57和0x43,若源SWF文件的文件頭的三個標(biāo)識符是0x46、0x57和0x53,則為未壓縮文件;若原swf文件的文件頭的三個標(biāo)識符是0x46、0x57和0x43,則為壓縮文件。進(jìn)一步地,步驟S104的具體實(shí)現(xiàn)方法為:根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽;根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION標(biāo)簽;解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。具體地,由于DOACTION標(biāo)簽和DOINITACTION標(biāo)簽為控制標(biāo)簽,用于存儲具體的代碼信息,因此其中包含大量重要的包名、類名、方法名、屬性名和參數(shù)名等字符信息,通過將這些重要字符信息替換為亂碼的方式對其進(jìn)行加密,從而達(dá)到保護(hù)源SWF文件的作用。進(jìn)一步地,步驟S106的具體實(shí)現(xiàn)方法為:根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽;根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS標(biāo)簽;解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。具體地,由于DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽為控制標(biāo)簽,用于存儲具體的代碼信息,因此其中包含大量重要的包名、類名、方法名、屬性名和參數(shù)名等字符信息,通過將這些重要字符信息替換為亂碼的方式對其進(jìn)行加密,從而達(dá)到保護(hù)源SWF文件的作用。本實(shí)施例的技術(shù)方案中,用戶通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。圖2為本發(fā)明SWF文件批量加密裝置第一實(shí)施例的結(jié)構(gòu)示意圖,如圖2所示,該裝置設(shè)于網(wǎng)絡(luò)側(cè)的服務(wù)器上,獲取用戶從終端側(cè)批量上傳源SWF文件后,分別對每個源SWF文件進(jìn)行加密,并將加密的源SWF文件壓縮發(fā)送至終端的本地目錄。該裝置可以采用軟件和/或硬件的形式來實(shí)現(xiàn),該方法包括:
接收模塊10,用于獲取用戶上傳的源SWF文件;
第一判斷模塊11,解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型;
第一加密模塊12,用于若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密;
第二加密模塊13,用于若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密;
重組模塊14,用于重組加密后的所有標(biāo)簽,生成加密SWF文件。
本發(fā)明實(shí)施例提供的SWF文件批量加密裝置用于執(zhí)行本發(fā)明實(shí)施例提供的SWF文件批量加密方法,具備相應(yīng)的功能模塊,在此不再贅述。
本實(shí)施例的技術(shù)方案中,用戶通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。
圖3為本發(fā)明SWF文件批量加密裝置第二實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例是基于圖2所示實(shí)施例的進(jìn)一步細(xì)化,如圖3所示,該裝置還包括:
第二判斷模塊15,用于根據(jù)所述文件頭信息判斷所述源SWF文件是否是壓縮文件,若是則解壓所述源SWF文件。
其中第一加密模塊12包括:
第一定位單元121,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽;
第二定位單元122,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION 標(biāo)簽;
第一混淆單元123,用于解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
第二加密模塊13包括:
第三定位單元131,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽;
第四定位單元132,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS 標(biāo)簽;第二混淆單元133,用于解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。本發(fā)明實(shí)施例提供的SWF文件批量加密裝置用于執(zhí)行本發(fā)明實(shí)施例提供的SWF文件批量加密方法,具備相應(yīng)的功能模塊,在此不再贅述。本實(shí)施例的技術(shù)方案中,用戶通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明而非限制,本發(fā)明也并不僅限于上述舉例,一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍中。
權(quán)利要求
1.一種SWF文件批量加密方法,其特征在于,包括: 獲取用戶上傳的源SWF文件; 解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型; 若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述D0INITACT10N標(biāo)簽進(jìn)行混淆加密; 若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密; 重組加密后的所有標(biāo)簽,生成加密SWF文件。
2.根據(jù)權(quán)利要求1所述的SWF文件批量加密方法,其特征在于,所述根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型之前,還包括: 根據(jù)所述文件頭信息判斷所述源SWF文件是否是壓縮文件,若是則解壓所述源SWF文件。
3.根據(jù)權(quán)利要求1所述的SWF文件批量加密方法,其特征在于,所述若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密,包括: 根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽;根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION標(biāo)簽;解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
4.根據(jù)權(quán)利要求1所述的SWF文件批量加密方法,其特征在于,所述若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密,包括: 根據(jù)所述文件頭信息,獲 取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽; 根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS標(biāo)簽; 解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
5.一種SWF文件批量加密裝置,其特征在于,包括: 接收模塊,用于獲取用戶上傳的源SWF文件; 第一判斷模塊,解析所述源SWF文件獲取文件頭信息,根據(jù)所述文件頭信息判斷所述源SWF文件的版本類型屬于AVMl類型或AVM2類型; 第一加密模塊,用于若所述源SWF文件的版本類型為AVMl類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽進(jìn)行混淆加密; 第二加密模塊,用于若所述源SWF文件的版本類型為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密; 重組模塊,用于重組加密后的所有標(biāo)簽,生成加密SWF文件。
6.根據(jù)權(quán)利要求5所述的SWF文件批量加密裝置,其特征在于,所述裝置還包括: 第二判斷模塊,用于根據(jù)所述文件頭信息判斷所述源SWF文件是否是壓縮文件,若是則解壓所述源SWF文件。
7.根據(jù)權(quán)利要求5所述的SWF文件批量加密裝置,其特征在于,所述第一加密模塊包括: 第一定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOACTION標(biāo)簽的位置值,根據(jù)所述DOACTION標(biāo)簽的位置值直接定位到所述DOACTION標(biāo)簽; 第二定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DOINITACTION標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DOINITACTION標(biāo)簽的位置值,根據(jù)所述DOINITACTION標(biāo)簽的位置值直接定位到所述DOINITACTION 標(biāo)簽; 第一混淆單元,用于解析所述DOACTION標(biāo)簽和所述DOINITACTION標(biāo)簽,獲得所述源SffF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
8.根據(jù)權(quán)利要求5所述的SWF文件批量加密裝置,其特征在于,所述第二加密模塊包括: 第三定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述DoABC標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述DoABC標(biāo)簽的位置值,根據(jù)所述DoABC標(biāo)簽的位置值直接定位到所述DoABC標(biāo)簽; 第四定位單元,用于根據(jù)所述文件頭信息,獲取所述源SWF文件中文件頭的長度值以及位于所述SYMBOLCLASS標(biāo)簽之前的各個標(biāo)簽的長度值,并進(jìn)行求和計(jì)算,獲得所述SYMBOLCLASS標(biāo)簽的位置值,根據(jù)所述SYMBOLCLASS標(biāo)簽的位置值直接定位到所述SYMBOLCLASS 標(biāo)簽; 第二混淆單元,用于解析所述DoABC標(biāo)簽和所述SYMBOLCLASS標(biāo)簽,獲得所述源SWF文件中的類名、變量名以及函數(shù)名,將所述源SWF文件中的類名、變量名以及函數(shù)名進(jìn)行混淆加密。
全文摘要
本發(fā)明提供一種SWF文件批量加密方法及裝置,所述方法包括獲取用戶上傳的源SWF文件;解析源SWF文件獲取文件頭信息,根據(jù)文件頭信息判斷源SWF文件的版本類型屬于AVM1類型或AVM2類型;若為AVM1類型,則根據(jù)所述文件頭信息,定位到DOACTION標(biāo)簽和DOINITACTION標(biāo)簽,對DOACTION標(biāo)簽和DOINITACTION標(biāo)簽進(jìn)行混淆加密;若為AVM2類型,則根據(jù)所述文件頭信息,定位到DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽,對DoABC標(biāo)簽和SYMBOLCLASS標(biāo)簽進(jìn)行混淆加密;重組加密后的所有標(biāo)簽,生成加密SWF文件。用戶通過批量上傳SWF文件至SWF文件批量加密裝置,對大量SWF文件進(jìn)行批量加密,從而大大提高了加密效率,且不占用客戶端的硬盤資源。
文檔編號G06F21/10GK103218547SQ201310120619
公開日2013年7月24日 申請日期2013年4月9日 優(yōu)先權(quán)日2013年4月9日
發(fā)明者程思敏 申請人:四三九九網(wǎng)絡(luò)股份有限公司