亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種安卓應(yīng)用程序安裝包加殼方法及系統(tǒng)及解殼方法

文檔序號:6552155閱讀:208來源:國知局
一種安卓應(yīng)用程序安裝包加殼方法及系統(tǒng)及解殼方法
【專利摘要】本發(fā)明涉及一種安卓應(yīng)用程序安裝包加殼方法,包括步驟:步驟1:將源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù);步驟2:計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值;步驟3:判斷采用第一類加殼方法還是第二類加殼方法,如果是第一類,執(zhí)行步驟4;否則,執(zhí)行步驟6;步驟4:將待加殼數(shù)據(jù)和待加殼數(shù)據(jù)的長度值依次添加到加殼程序文件尾部;步驟5:重置相關(guān)項(xiàng),執(zhí)行步驟8;步驟6:將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序文件頭的尾部;步驟7:重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,修改相關(guān)的數(shù)據(jù)偏移量;步驟8:將加殼程序文件的入口類配置為指定的類,完成對待加殼數(shù)據(jù)的加殼。本發(fā)明達(dá)到保護(hù)源文件的目的。
【專利說明】一種安卓應(yīng)用程序安裝包加殼方法及系統(tǒng)及解殼方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種安卓應(yīng)用程序安裝包加殼方法及系統(tǒng)及解殼方法,涉及到手機(jī) App安全領(lǐng)域。

【背景技術(shù)】
[0002] 目前,市場上智能手機(jī)的品牌種類繁多,比如說:蘋果,三星,HTC,諾基亞,小米,LG 等等。但是,從智能手機(jī)操作系統(tǒng)層面上進(jìn)行劃分的話,大體上只有三種:Android,iOS, Windows Phone (這三種的市場占有率最高,其它的由于市場占有率過低,暫時(shí)忽略)。
[0003] 在上面提到的三種操作系統(tǒng)中,由于Android是唯一的開源平臺,所以,目前采用 Android平臺的智能手機(jī)最多,市場占有率也是最大的。
[0004] 但是,"開放性"在給Android帶來巨大的競爭力的同時(shí),也帶來了很多安全方面的 問題,其中,一個(gè)比較明顯的是,App很容易被破解,然后被惡意加入一些代碼,執(zhí)行與當(dāng)初 設(shè)計(jì)不相符的邏輯。比如說:App被反編譯,被破解后,界面被加入一些垃圾廣告;用戶私秘 信息被獲取后用于他用等等。


【發(fā)明內(nèi)容】

[0005] 本發(fā)明所要解決的技術(shù)問題是提供一種主要針對Android平臺App,通過對APK安 卓應(yīng)用程序安裝包加殼來預(yù)防App被破解的安卓應(yīng)用程序安裝包加殼方法。
[0006] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種安卓應(yīng)用程序安裝包加殼方法, 具體包括以下步驟:
[0007] 步驟1 :將安卓應(yīng)用程序安裝包的源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù);
[0008] 步驟2 :計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值;
[0009] 步驟3 :判斷采用第一類加殼方法還是第二類加殼方法,如果是第一類,執(zhí)行步驟 4;如果是第二類,執(zhí)行步驟6;
[0010] 步驟4 :將待加殼數(shù)據(jù)和待加殼數(shù)據(jù)的長度值依次添加到加殼程序文件尾部;
[0011] 步驟5 :重新生成checksum檢驗(yàn)碼字段、signature簽名字段和file_size文件總 長度信息替換原來加殼程序文件頭部中的checksum檢驗(yàn)碼字段、signature簽名字段和 file_size文件總長度信息,構(gòu)成新加殼程序文件,執(zhí)行步驟8 ;
[0012] 步驟6 :將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序文件頭的尾 部;
[0013] 步驟7 :重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_off數(shù) 據(jù),修改相關(guān)的數(shù)據(jù)偏移量,構(gòu)成新加殼程序文件;
[0014] 步驟8 :將新加殼程序文件的入口類配置為指定的類,使解殼程序在運(yùn)行的時(shí)候 還原此類,完成對待加殼數(shù)據(jù)的加殼。
[0015] 本發(fā)明的有益效果是:本發(fā)明對Android平臺的APK進(jìn)行加殼,反編譯工具還原 Android源代碼的原理是根據(jù)虛擬機(jī)的可執(zhí)行文件.DEX格式進(jìn)行代碼還原,反編譯工具只 能窺測外層APK程序文件而看不到源文件里的東西,從而達(dá)到保護(hù)源文件的目的。
[0016] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0017] 進(jìn)一步,步驟7中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽名字段、 file_ _size 文件總長度信息、header_size、string」ds_off、type」ds_off、proto」ds_off、 field_ids_off、method_ids_ofT、class_defs_off 和 data_off 相關(guān)項(xiàng)。
[0018] 進(jìn)一步,所述步驟8中,如果源文件已經(jīng)配置了入口類需要把這個(gè)入口類用 〈meta-data>保存在加殼程序文件中,并將加殼程序文件的入口類配置為源文件配置的入 口類。
[0019] 進(jìn)一步,所述加殼程序文件采用dex文件。
[0020] 本發(fā)明所要解決的技術(shù)問題是提供一種主要針對Android平臺App,通過對APK安 卓應(yīng)用程序安裝包加殼來預(yù)防App被破解的安卓應(yīng)用程序安裝包加殼系統(tǒng)。
[0021] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種安卓應(yīng)用程序安裝包加殼系統(tǒng), 包括加密模塊、長度計(jì)算模塊、第一類加殼模塊、第二類加殼模塊和配置類模塊;
[0022] 所述加密模塊將源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù);
[0023] 所述長度計(jì)算模塊用于計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值,并將長度 值和待加殼數(shù)據(jù)發(fā)送到第一類加殼模塊或第二類加殼模塊;
[0024] 所述第一類加殼模塊將待加殼數(shù)據(jù)寫入加殼程序文件的尾部,并在加殼程序文件 尾部添加待加殼數(shù)據(jù)的長度值;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并將 加殼程序文件發(fā)送到配置類模塊;
[0025] 所述第二類加殼模塊將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序 文件頭的尾部;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_ofT數(shù)據(jù), 修改相關(guān)的數(shù)據(jù)偏移量,并將加殼程序文件發(fā)送到配置類模塊;
[0026] 所述配置類模塊將加殼程序文件的入口類配置為指定的類,使解殼程序在運(yùn)行的 時(shí)候還原此類。
[0027] 本發(fā)明的有益效果是:本發(fā)明對Android平臺的APK進(jìn)行加殼,反編譯工具還原 Android源代碼的原理是根據(jù)虛擬機(jī)的可執(zhí)行文件.DEX格式進(jìn)行代碼還原,反編譯工具只 能窺測外層APK程序文件而看不到源文件里的東西,從而達(dá)到保護(hù)源文件的目的。
[0028] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0029] 進(jìn)一步,所述第一類加殼模塊中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、 signature簽名字段和file_size文件總長度信息。
[0030] 進(jìn)一步,所述第二類加殼模塊中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、 signature 簽名字段、file_size 文件總長度信息、header_size、string_ids_off、type_ ids_ofT、proto_ids_ofT、field_ids_ofT、method_ids_ofT、class_defs_ofT 和 data_off 相 關(guān)項(xiàng)。
[0031] 進(jìn)一步,所述加殼程序文件采用dex文件。
[0032] 本發(fā)明所要解決的技術(shù)問題是提供一種主要針對Android平臺App,通過對APK安 卓應(yīng)用程序安裝包加殼來預(yù)防App被破解的安卓應(yīng)用程序安裝包解殼方法。
[0033] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種安卓應(yīng)用程序安裝包解殼方法, 具體包括以下步驟:
[0034] 步驟1 :判斷是第一類加殼方法還是第二類加殼方法處理的加殼程序文件,如果 是第一類,執(zhí)行步驟2 ;如果是第二類,執(zhí)行步驟3 ;
[0035] 步驟2 :讀取加殼程序文件尾部數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值,執(zhí)行步驟4 ;
[0036] 步驟3 :讀取加殼程序文件頭的末尾處數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值;
[0037] 步驟4 :從加殼程序文件中讀取待加殼數(shù)據(jù),對待加殼數(shù)據(jù)進(jìn)行解密得到解密數(shù) 據(jù);
[0038] 步驟5 :將解密數(shù)據(jù)以文件形式保存到a. apk文件中;
[0039] 步驟6 :通過類裝載器動態(tài)加載a. apk文件,讀取源文件。
[0040] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0041] 進(jìn)一步,所述步驟6中的類裝載器采用DexClassLoader。

【專利附圖】

【附圖說明】
[0042] 圖1為本發(fā)明所述的一種安卓應(yīng)用程序安裝包加殼方法流程圖;
[0043] 圖2為本發(fā)明所述的一種安卓應(yīng)用程序安裝包加殼系統(tǒng)結(jié)構(gòu)框圖;
[0044] 圖3為本發(fā)明所述的一種安卓應(yīng)用程序安裝包解殼方法流程圖。
[0045] 附圖中,各標(biāo)號所代表的部件列表如下:
[0046] 1、加密模塊,2、長度計(jì)算模塊,3、第一類加殼模塊,4、第二類加殼模塊,5、配置類 模塊。

【具體實(shí)施方式】
[0047] 以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0048] 如圖1所示,為本發(fā)明所述的一種安卓應(yīng)用程序安裝包加殼方法,具體包括以下 步驟:
[0049] 步驟1 :將安卓應(yīng)用程序安裝包的源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù);
[0050] 步驟2 :計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值;
[0051] 步驟3 :判斷采用第一類加殼方法還是第二類加殼方法,如果是第一類,執(zhí)行步驟 4;如果是第二類,執(zhí)行步驟6;
[0052] 步驟4 :將待加殼數(shù)據(jù)和待加殼數(shù)據(jù)的長度值依次添加到加殼程序文件尾部;
[0053] 步驟5 :重新生成checksum檢驗(yàn)碼字段、signature簽名字段和file_size文件總 長度信息替換原來加殼程序文件頭部中的checksum檢驗(yàn)碼字段、signature簽名字段和 file_size文件總長度信息,構(gòu)成新加殼程序文件,執(zhí)行步驟8 ;
[0054] 步驟6 :將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序文件頭的尾 部;
[0055] 步驟7 :重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_off數(shù) 據(jù),修改相關(guān)的數(shù)據(jù)偏移量,構(gòu)成新加殼程序文件;
[0056] 步驟8 :將新加殼程序文件的入口類配置為指定的類,使解殼程序在運(yùn)行的時(shí)候 還原此類,完成對待加殼數(shù)據(jù)的加殼。
[0057] 步驟7中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽名字段、file_size 文件總長度信息、header_ size、string-ids_off、type_ids_off、proto_ids_off、field- ids_off、method-ids_off、class_defs_off 和 data-off 相關(guān)項(xiàng)。
[0058] 所述步驟8中,如果源程序數(shù)據(jù)已經(jīng)配置了入口類需要把這個(gè)入口類用 〈meta-data>保存在加殼程序文件中,并將加殼程序文件的入口類配置為源文件配置的入 口類。
[0059] 所述加殼程序文件采用dex文件。
[0060] 如圖2所示,為本發(fā)明所述的一種安卓應(yīng)用程序安裝包加殼系統(tǒng),包括加密模塊 1、長度計(jì)算模塊2、第一類加殼模塊3、第二類加殼模塊4和配置類模塊5 ;
[0061] 所述加密模塊1將源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù);
[0062] 所述長度計(jì)算模塊2用于計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值,并將長 度值和待加殼數(shù)據(jù)發(fā)送到第一類加殼模塊3或第二類加殼模塊4 ;
[0063] 所述第一類加殼模塊3將待加殼數(shù)據(jù)寫入加殼程序文件的尾部,并在加殼程序文 件尾部添加待加殼數(shù)據(jù)的長度值;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并 將加殼程序文件發(fā)送到配置類模塊5 ;
[0064] 所述第二類加殼模塊4將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程 序文件頭的尾部;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_off數(shù) 據(jù),修改相關(guān)的數(shù)據(jù)偏移量,并將加殼程序文件發(fā)送到配置類模塊5 ;
[0065] 所述配置類模塊5將加殼程序文件的入口類配置為指定的類,使解殼程序在運(yùn)行 的時(shí)候還原此類。
[0066] 所述第一類加殼模塊1中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽 名字段和file_ Size文件總長度信息。
[0067] 所述第二類加殼模塊2中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽 名字段、file_size 文件總長度信息、header_size、string_ids_off、type_ids_off、proto_ ids_ofT、field_ids_ofT、method_ids_off、class_defs_off 和 data_off 相關(guān)項(xiàng)。
[0068] 所述加殼程序文件采用dex文件。
[0069] 如圖3所示,本發(fā)明所述的一種安卓應(yīng)用程序安裝包解殼方法,具體包括以下步 驟:
[0070] 步驟1 :判斷是第一類加殼方法還是第二類加殼方法處理的加殼程序文件,如果 是第一類,執(zhí)行步驟2 ;如果是第二類,執(zhí)行步驟3 ;
[0071] 步驟2 :讀取加殼程序文件尾部數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值,執(zhí)行步驟4 ;
[0072] 步驟3 :讀取加殼程序文件頭的末尾處數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值;
[0073] 步驟4 :從加殼程序文件中讀取待加殼數(shù)據(jù),對待加殼數(shù)據(jù)進(jìn)行解密得到解密數(shù) 據(jù);
[0074] 步驟5 :將解密數(shù)據(jù)以文件形式保存到a. apk文件中;
[0075] 步驟6 :通過類裝載器動態(tài)加載a. apk文件,讀取源文件。
[0076] 所述步驟6中的類裝載器采用DexClassLoader。
[0077] 第一類加殼程序工作流程:
[0078] L加密源程序APK文件為待加殼數(shù)據(jù);
[0079] 2.把待加殼數(shù)據(jù)寫入解殼程序Dex文件尾部,并在文件尾部添加待加殼數(shù)據(jù)的大 ??;
[0080] 3.修改解殼程序 Dex 頭中 checksum、signature 和 file_size 頭信息;
[0081] Checksum :檢驗(yàn)碼字段是一個(gè)整數(shù)值,對dex數(shù)據(jù)采用Adler32算法生成,用來檢 查這個(gè)字段開始到文件結(jié)尾數(shù)據(jù)的完整性;對解殼程序dex數(shù)據(jù)重新用Adler32算法生成 一個(gè)整數(shù)并替換原來的校驗(yàn)碼字段即可;
[0082] Signature:簽名字段,是一個(gè)20字節(jié)的數(shù)據(jù),對dex數(shù)據(jù)采用SHA安全散列算法 生成,用來檢查dex數(shù)據(jù)的完整性;對解殼程序dex數(shù)據(jù)重新采用SHA安全散列算法生成簽 名數(shù)據(jù)并替換原來的簽名字段即可;
[0083] file_size :dex文件的總長度,對解殼程序dex文件重新計(jì)算長度并替換原來的長 度字段;
[0084] 4.修改源程序 AndroidMainfest. xml 文件并覆蓋解殼程序 AndroidMainfest. xml 文件;
[0085] AndroidMainfest文件可以通過在application節(jié)點(diǎn)name屬性上配置程序的入口 類,所以需要吧入口類配置為解殼程序指定的類,如果源文件已經(jīng)配置了入口類需要把這 個(gè)入口類用〈meta-data〉保存在此文件中,以便解殼程序在運(yùn)行的時(shí)候還原此類。
[0086] 對應(yīng)的解殼程序工作流程:
[0087] 1.讀取Dex文件尾部數(shù)據(jù)獲取待加殼數(shù)據(jù)長度。
[0088] 2.從Dex文件讀取待加殼數(shù)據(jù),解密待加殼數(shù)據(jù)。以文件形式保存解密數(shù)據(jù)到 a. apk文件。
[0089] 3·通過 DexClassLoader 動態(tài)加載 a. apk。
[0090] 第二類加殼方法待加殼數(shù)據(jù)位于加殼程序文件頭
[0091] 該種方式相對比較復(fù)雜,合并后Dex文件結(jié)構(gòu)如下:
[0092] 第二類加殼程序工作流程:
[0093] 1.加密源程序APK文件為待加殼數(shù)據(jù);
[0094] 2.計(jì)算待加殼數(shù)據(jù)長度,并添加該長度到解殼程序Dex文件頭末尾,并繼續(xù)添加 待加殼數(shù)據(jù)到文件頭末尾(插入數(shù)據(jù)的位置為0x70處:這個(gè)偏移位置指向的是dex頭文件 的結(jié)尾,因?yàn)閐ex頭文件的大小是固定的70字節(jié));
[0095] 3.修改解殼程序 Dex 頭中 checksum、signature、file_ _size、header_size、string- ids_off、type_ids_off、proto_ids_off、field-ids_off、method-ids_off、class_defs_off 和data_ofT相關(guān)項(xiàng)。分析map_ofT數(shù)據(jù),修改相關(guān)的數(shù)據(jù)偏移量;
[0096] 4.修改源程序AndroidMainfest. xml 文件并覆蓋解殼程序AndroidMainfest. xml 文件。
[0097] 解殼程序工作流程:
[0098] 1.從0x70處讀取待加殼數(shù)據(jù)長度。
[0099] 2.從Dex文件讀取待加殼數(shù)據(jù),解密待加殼數(shù)據(jù)。以文件形式保存解密數(shù)據(jù)到 a. apk〇
[0100] 3.通過 DexClassLoader 動態(tài)加載 a. apk。
[0101] 特殊說明:
[0102] 為了防止解殼程序被反編譯,被破解,解殼程序可以考慮采用更加安全的
[0103] C代碼來實(shí)現(xiàn),而不采用Java,但是,兩者的實(shí)現(xiàn)思路是相似的。
[〇1〇4] 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種安卓應(yīng)用程序安裝包加殼方法,其特征在于,具體包括以下步驟: 步驟1 :將安卓應(yīng)用程序安裝包的源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù); 步驟2 :計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值; 步驟3 :判斷采用第一類加殼方法還是第二類加殼方法,如果是第一類,執(zhí)行步驟4 ;如 果是第二類,執(zhí)行步驟6; 步驟4 :將待加殼數(shù)據(jù)和待加殼數(shù)據(jù)的長度值依次添加到加殼程序文件尾部; 步驟5 :重新生成checksum檢驗(yàn)碼字段、signature簽名字段和file_size文件總長度 信息替換原來加殼程序文件頭部中的checksum檢驗(yàn)碼字段、signature簽名字段和file_ size文件總長度信息,構(gòu)成新加殼程序文件,執(zhí)行步驟8 ; 步驟6 :將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序文件頭的尾部; 步驟7 :重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_ofT數(shù)據(jù),修 改相關(guān)的數(shù)據(jù)偏移量,構(gòu)成新加殼程序文件; 步驟8 :將新加殼程序文件的入口類配置為指定的類,完成對待加殼數(shù)據(jù)的加殼。
2. 根據(jù)權(quán)利要求1所述的一種安卓應(yīng)用程序安裝包加殼方法,其特征在于,步驟7中 的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽名字段、file_size文件總長度信 息、header_size、string」ds_off、type」ds_off、proto」ds_off、field」ds_off、method_ ids_off、class_defs_off 和 data_off 相關(guān)項(xiàng)。
3. 根據(jù)權(quán)利要求1或2所述的一種安卓應(yīng)用程序安裝包加殼方法,其特征在于,所述步 驟8中,如果源程序數(shù)據(jù)已經(jīng)配置了入口類需要把這個(gè)入口類用〈meta-data〉保存在加殼 程序文件中,并將加殼程序文件的入口類配置為源文件配置的入口類。
4. 根據(jù)權(quán)利要求3所述的一種安卓應(yīng)用程序安裝包加殼方法,其特征在于,所述加殼 程序文件采用dex文件。
5. -種安卓應(yīng)用程序安裝包加殼系統(tǒng),其特征在于,包括加密模塊、長度計(jì)算模塊、第 一類加殼模塊、第一類加殼模塊和配置類模塊; 所述加密模塊將源程序數(shù)據(jù)加密生成待加殼數(shù)據(jù); 所述長度計(jì)算模塊用于計(jì)算待加殼數(shù)據(jù)長度得到待加殼數(shù)據(jù)的長度值,并將長度值和 待加殼數(shù)據(jù)發(fā)送到第一類加殼模塊或第一類加殼模塊; 所述第一類加殼模塊將待加殼數(shù)據(jù)寫入加殼程序文件的尾部,并在加殼程序文件尾部 添加待加殼數(shù)據(jù)的長度值;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并將加殼 程序文件發(fā)送到配置類模塊; 所述第二類加殼模塊將待加殼數(shù)據(jù)的長度值和待加殼數(shù)據(jù)依次添加到加殼程序文件 頭的尾部;重新生成加殼程序文件頭部中的相關(guān)項(xiàng)替換原有的,并分析map_ofT數(shù)據(jù),修改 相關(guān)的數(shù)據(jù)偏移量,并將加殼程序文件發(fā)送到配置類模塊; 所述配置類模塊將加殼程序文件的入口類配置為指定的類,使解殼程序在運(yùn)行的時(shí)候 還原此類。
6. 根據(jù)權(quán)利要求5所述的一種安卓應(yīng)用程序安裝包加殼系統(tǒng),其特征在于,所述第一 類加殼模塊中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽名字段和file_size文 件總長度信息。
7. 根據(jù)權(quán)利要求6所述的一種安卓應(yīng)用程序安裝包加殼系統(tǒng),其特征在于,所述第二 類加殼模塊中的所述相關(guān)項(xiàng)包括checksum檢驗(yàn)碼字段、signature簽名字段、file_size文 件總長度信息、header_ size、string-ids_off、type_ids_off、proto_ids_off、field-ids_ off、method-ids_off、class_defs_off 和 data_off 相關(guān)項(xiàng)。
8. 根據(jù)權(quán)利要求5-7任一項(xiàng)所述的一種安卓應(yīng)用程序安裝包加殼系統(tǒng),其特征在于, 所述加殼程序文件采用dex文件。
9. 一種安卓應(yīng)用程序安裝包解殼方法,其特征在于,具體包括以下步驟: 步驟1 :判斷是第一類加殼方法還是第二類加殼方法處理的加殼程序文件,如果是第 一類,執(zhí)行步驟2 ;如果是第二類,執(zhí)行步驟3 ; 步驟2 :讀取加殼程序文件尾部數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值,執(zhí)行步驟4 ; 步驟3 :讀取加殼程序文件頭的末尾處數(shù)據(jù),獲得待加殼數(shù)據(jù)的長度值; 步驟4 :從加殼程序文件中讀取待加殼數(shù)據(jù),對待加殼數(shù)據(jù)進(jìn)行解密得到解密數(shù)據(jù); 步驟5 :將解密數(shù)據(jù)以文件形式保存到a. apk文件中; 步驟6 :通過類裝載器動態(tài)加載a. apk文件,讀取源文件。
10. 根據(jù)權(quán)利要求9所述的一種安卓應(yīng)用程序安裝包解殼方法,其特征在于,所述步驟 6中的類裝載器米用DexClassLoader。
【文檔編號】G06F9/44GK104111832SQ201410314808
【公開日】2014年10月22日 申請日期:2014年7月3日 優(yōu)先權(quán)日:2014年7月3日
【發(fā)明者】呂麟 申請人:北京思特奇信息技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1