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