新四季網

應用程式防止逆向的方法及裝置、運行方法及終端的製作方法

2023-05-12 02:40:16

應用程式防止逆向的方法及裝置、運行方法及終端的製作方法
【專利摘要】本發明提供一種應用程式防止逆向的方法及裝置、運行方法及終端,其中,應用程式防止逆向的方法包括:從應用程式中獲取包括可執行代碼的文件;壓縮所述包括可執行代碼的文件,生成壓縮後的文件和附加數據,所述附加數據用於在運行該應用程式的系統的內存中還原並運行所述壓縮後的文件中的可執行代碼,所述附加數據還用於防止所述可執行代碼被逆向查找;根據所述壓縮後的文件和所述附加數據,生成一替換文件,將所述替換文件作為所述應用程式中的包括可執行代碼的文件。本發明能夠減少現有技術中應用程式由加固過程產生的加固增量,同時防止應用程式中的可執行代碼被逆向查找。
【專利說明】應用程式防止逆向的方法及裝置、運行方法及終端

【技術領域】
[0001] 本發明涉及安全技術,尤其涉及一種應用程式防止逆向的方法及裝置、運行方法 及終端。

【背景技術】
[0002] 隨著移動終端平臺的日益發展,第三方應用程式大量湧現,對第三方應用的盜版 和重打包現象日益嚴重。其原因主要在於,目前市面上存在多種對應用文件進行解壓縮的 通用軟體,在利用這些軟體對應用文件進行解壓縮之後,應用原始碼中的明文字符串、庫函 數調用、核心功能函數等都顯露無遺,使得非法開發者對第三方應用程式的盜版或者核心 功能的逆向工程都變得簡單易行。
[0003] 為防止應用被反編譯、惡意篡改,可以通過加固的方法來並保護應用數據信息不 被竊取。所謂應用程式的加固一般指採用加殼、隱蔽、混淆等手段對源程序代碼進行加密, 同時不影響應用文件的正常運行。
[0004] 然而,採用現有的加固方法通常會使應用文件在加固後以一定比例增大(一般最 低為8%到9% )、佔用更多的存儲空間(或稱為"加固增量"),因而會對應用文件的運行、 存儲和傳輸的效率造成影響,不利於應用的使用和推廣。


【發明內容】

[0005] 針對現有技術中的缺陷,本發明提供一種應用程式防止逆向的方法及裝置、應用 程序的運行方法及終端,能夠減少現有技術中應用程式由加固過程產生的加固增量,同時 防止應用程式中的可執行代碼被逆向查找。
[0006] 第一方面,本發明提供了一種應用程式防止逆向的方法,其特徵在於,包括 :
[0007] 從應用程式中獲取包括可執行代碼的文件;
[0008] 壓縮所述包括可執行代碼的文件,生成壓縮後的文件和附加數據,所述附加數據 用於在運行該應用程式的系統的內存中還原並運行所述壓縮後的文件中的可執行代碼,所 述附加數據還用於防止所述可執行代碼被逆向查找;
[0009] 根據所述壓縮後的文件和所述附加數據,生成一替換文件,將所述替換文件作為 所述應用程式中的包括可執行代碼的文件。
[0010] 可選地,所述附加數據包括:
[0011] 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文 件,和,
[0012] 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在 運行該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
[0013] 可選地,該方法還包括:將所述應用程式的運行指令起始點變更為所述替換文件 的運行指令起始點。
[0014] 可選地,所述替換文件與所述應用程式中包括可執行代碼的文件具有相同的文件 名。
[0015] 可選地,所述運行所述應用程式的系統為Android系統;所述應用程式中包括可 執行代碼的文件為Android安裝包APK文件中的classes,dex文件。
[0016] 可選地,所述從應用程式中獲取包括可執行代碼的文件之前,所述方法還包括:
[0017] 接收應用程式的加固請求,所述加固請求包括:所述應用程式的安裝包,和所述應 用程序的渠道信息;所述安裝包包括:包括可執行代碼的文件和資源文件,所述資源文件 中配置有與所述渠道信息對應的信息;
[0018] 相應地,所述從應用程式中獲取包括可執行代碼的文件,包括:
[0019] 根據所述加固請求,從所述應用程式中獲取包括可執行代碼的文件。
[0020] 第二方面,本發明還提供了一種應用程式的運行方法,包括:
[0021] 獲取應用程式中壓縮後的包括可執行代碼的文件和附加數據,所述附加數據為壓 縮所述包括可執行代碼的文件的過程中生成的,用於在運行該應用程式的系統的內存中還 原並運行所述可執行代碼、防止所述可執行代碼被逆向查找的數據;
[0022] 根據所述附加數據,對壓縮後的包括可執行代碼的文件進行解壓縮處理,且在運 行該應用程式的系統的內存中還原並運行解壓縮後的可執行代碼。
[0023] 可選地,所述附加數據包括:
[0024] 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文 件,和,
[0025] 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在 運行該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
[0026] 可選地,所述根據所述附加數據,對壓縮後的包括可執行代碼的文件進行解壓縮 處理,且在運行該應用程式的系統的內存中還原並運行解壓縮後的可執行代碼的步驟,包 括:
[0027]利用所述附加數據中的可執行文件調用所述動態連結庫對所述壓縮後的包括可 執行代碼的文件進行解壓縮處理,在運行該應用程式的系統的內存中還原解壓縮後的可執 行代碼,並使所述應用程式的運行指令起始點指向還原後的可執行代碼。
[0028] 可選地,所述應用程式的可執行代碼為:所述運行所述應用程式的系統為 Android系統;所述應用程式中包括可執行代碼的文件為Android安裝包APK文件中的 classes,dex文件。
[0029] 第三方面,本發明還提供了一種應用程式防止逆向的裝置,該裝置包括:
[0030] 獲取單元,用於從應用程式中獲取包括可執行代碼的文件;
[0031] 壓縮單元,用於壓縮所述獲取單元獲取的所述包括可執行代碼的文件,生成壓縮 後的文件和附加數據,所述附加數據用於在運行該應用程式的系統的內存中還原並運行所 述壓縮後的文件中的可執行代碼,所述附加數據還用於防止所述可執行代碼被逆向查找;
[0032] 替換文件生成單元,用於根據所述壓縮單元生成的所述壓縮後的文件和所述附加 數據,生成一替換文件,將所述替換文件作為所述應用程式中的包括可執行代碼的文件。
[0033] 可選地,所述附加數據包括:
[0034] 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文 件,和,
[0035] 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在 運行該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
[0036] 可選地,該裝置還包括:變更單元,用於將所述應用程式的運行指令起始點變更為 所述替換文件的運行指令起始點。
[0037] 可選地,所述替換文件與所述應用程式中包括可執行代碼的文件具有相同的文件 名。
[0038] 可選地,所述運行所述應用程式的系統為Android系統;所述應用程式中包括可 執行代碼的文件為Android安裝包APK文件中的classes, dex文件。
[0039] 可選地,該裝置還包括:
[0040] 接口單元,用於接收應用程式的加固請求,所述加固請求包括:所述應用程式的安 裝包,和所述應用程式的渠道信息;所述安裝包包括:包括可執行代碼的文件和資源文件, 所述資源文件中配置有與所述渠道信息對應的信息;
[0041] 相應地,獲取單元具體用於:
[0042] 根據所述接口單元接收的加固請求,從所述應用程式中獲取包括可執行代碼的文 件。
[0043] 第四方面,本發明還提供了一種終端,包括:
[0044] 獲取單元,用於獲取應用程式中壓縮後的包括可執行代碼的文件和附加數據,所 述附加數據為壓縮所述包括可執行代碼的文件的過程中生成的,用於在運行該應用程式的 系統的內存中還原並運行所述可執行代碼、防止所述可執行代碼被逆向查找的數據;
[0045] 解壓縮單元,用於根據所述附加數據,對壓縮後的包括可執行代碼的文件進行解 壓縮處理,且在運行該應用程式的系統的內存中還原並運行解壓縮後的可執行代碼。
[0046] 可選地,所述附加數據包括:
[0047] 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文 件,和,
[0048] 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在 運行該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
[0049] 可選地,所述解壓縮單元,具體用於利用所述獲取單元獲取的所述附加數據中的 可執行文件調用所述動態連結庫對所述壓縮後的包括可執行代碼的文件進行解壓縮處理, 在運行該應用程式的系統的內存中還原解壓縮後的可執行代碼,並使所述應用程式的運行 指令起始點指向還原後的可執行代碼。
[0050] 可選地,所述運行所述應用程式的系統為Android系統;所述應用程式中包括可 執行代碼的文件為Android安裝包APK文件中的classes, dex文件。
[0051] 由上述技術方案可知,本發明主要根據應用程式中包括可執行代碼的文件得到壓 縮處理後的文件和附加數據兩個部分,其中附加數據用於還原、運行所述可執行代碼,並起 到防止可執行代碼被逆向查找的作用。由此,本發明對於佔有主要存儲空間的可執行代碼 進行了壓縮,並在運行時使用附加數據對應地進行解壓縮,可以在不影響應用程式正常運 行的情況下有效地減小加固增量。

【專利附圖】

【附圖說明】
[0052] 圖1為本發明一實施例提供的應用程式防止逆向的方法的流程示意圖;
[0053] 圖2為本發明一實施例提供的應用程式的運行方法的流程示意圖;
[0054] 圖3為本發明一實施例提供的Android系統下的APK文件的加固方法的流程示意 圖;
[0055] 圖4為本發明一實施例提供的應用程式防止逆向的裝置的結構示意圖;
[0056] 圖5為本發明一實施例提供的終端的結構示意圖。

【具體實施方式】
[0057] 下面結合附圖和實施例,對本發明的【具體實施方式】作進一步詳細描述。以下實施 例用於說明本發明,但不用來限制本發明的範圍。
[0058] 現有技術中出現了多種安卓應用的安全加固方法,通過對安卓應用進行加密、防 反編譯、防代碼混淆等加固措施,然而由於加固方法所採用的方案不同,加固的效果也不 同,有些加固後並不能達到防止暴力破解的效果,例如現有的一種加固方法首先加密原程 序包的可執行文件dex,然後在提取四大組件信息生成代理的dex文件,程序執行時動態解 密原程序dex,然而這樣的加密方式,加密包和原包分離,原包僅為加密文件,可以輕易地通 過內存轉存實現程序的破解,加固效果有限。
[0059] 當前,在Android系統上,一個可以安裝、運行的應用,需要打包成Android系統的 APK 文件格式。APK 是 An droid application package file 的縮寫,簡稱 APK 文件,即 An droid 安裝包,也可以理解為Android終端上安裝的應用軟體。APK文件其實是ZIP文件格式,但 後綴名被修改為APK,通過工具解壓等方式可以看到其內部的文件結構,如表1所示:
[0060] 表1 APK文件內部的文件結構
[0061]

【權利要求】
1. 一種應用程式防止逆向的方法,其特徵在於,包括: 從應用程式中獲取包括可執行代碼的文件; 壓縮所述包括可執行代碼的文件,生成壓縮後的文件和附加數據,所述附加數據用於 在運行該應用程式的系統的內存中還原並運行所述壓縮後的文件中的可執行代碼,所述附 加數據還用於防止所述可執行代碼被逆向查找; 根據所述壓縮後的文件和所述附加數據,生成一替換文件,將所述替換文件作為所述 應用程式中的包括可執行代碼的文件。
2. 根據權利要求1所述的方法,其特徵在於,所述附加數據包括: 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文件, 和, 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在運行 該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
3. 根據權利要求1或2所述的方法,其特徵在於,所述從應用程式中獲取包括可執行代 碼的文件之前,所述方法還包括: 接收應用程式的加固請求,所述加固請求包括:所述應用程式的安裝包,和所述應用程 序的渠道信息;所述安裝包包括:包括可執行代碼的文件和資源文件,所述資源文件中配 置有與所述渠道信息對應的信息; 相應地,所述從應用程式中獲取包括可執行代碼的文件,包括: 根據所述加固請求,從所述應用程式中獲取包括可執行代碼的文件。
4. 一種應用程式的運行方法,其特徵在於,包括: 獲取應用程式中壓縮後的包括可執行代碼的文件和附加數據,所述附加數據為壓縮所 述包括可執行代碼的文件的過程中生成的,用於在運行該應用程式的系統的內存中還原並 運行所述可執行代碼、防止所述可執行代碼被逆向查找的數據; 根據所述附加數據,對壓縮後的包括可執行代碼的文件進行解壓縮處理,且在運行該 應用程式的系統的內存中還原並運行解壓縮後的可執行代碼。
5. 根據權利要求4所述的方法,其特徵在於,所述附加數據包括: 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文件, 和, 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在運行 該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
6. -種應用程式防止逆向的裝置,其特徵在於,所述裝置包括: 獲取單元,用於從應用程式中獲取包括可執行代碼的文件; 壓縮單元,用於壓縮所述獲取單元獲取的所述包括可執行代碼的文件,生成壓縮後的 文件和附加數據,所述附加數據用於在運行該應用程式的系統的內存中還原並運行所述壓 縮後的文件中的可執行代碼,所述附加數據還用於防止所述可執行代碼被逆向查找; 替換文件生成單元,用於根據所述壓縮單元生成的所述壓縮後的文件和所述附加數 據,生成一替換文件,將所述替換文件作為所述應用程式中的包括可執行代碼的文件。
7. 根據權利要求6所述的裝置,其特徵在於,所述附加數據包括: 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文件, 和, 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在運行 該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
8. 根據權利要求6或7所述的裝置,其特徵在於,該裝置還包括: 接口單元,用於接收應用程式的加固請求,所述加固請求包括:所述應用程式的安裝 包,和所述應用程式的渠道信息;所述安裝包包括:包括可執行代碼的文件和資源文件,所 述資源文件中配置有與所述渠道信息對應的信息; 相應地,獲取單元具體用於: 根據所述接口單元接收的加固請求,從所述應用程式中獲取包括可執行代碼的文件。
9. 一種終端,其特徵在於,包括: 獲取單元,用於獲取應用程式中壓縮後的包括可執行代碼的文件和附加數據,所述附 加數據為壓縮所述包括可執行代碼的文件的過程中生成的,用於在運行該應用程式的系統 的內存中還原並運行所述可執行代碼、防止所述可執行代碼被逆向查找的數據; 解壓縮單元,用於根據所述獲取單元獲取的所述附加數據,對壓縮後的包括可執行代 碼的文件進行解壓縮處理,且在運行該應用程式的系統的內存中還原並運行解壓縮後的可 執行代碼。
10. 根據權利要求9所述的終端,其特徵在於,所述附加數據包括: 用於在運行該應用程式的系統的內存中還原並運行所述可執行代碼的可執行文件, 和, 用於防止所述可執行代碼被逆向查找的動態連結庫,所述動態連結庫包括用於在運行 該應用程式的系統的內存中還原並運行所述可執行代碼的部分數據。
【文檔編號】G06F21/14GK104239757SQ201410521806
【公開日】2014年12月24日 申請日期:2014年9月30日 優先權日:2014年9月30日
【發明者】張立春 申請人:北京奇虎科技有限公司, 奇智軟體(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀