[發明專利]一種防止安卓應用程序被反編譯的系統有效
| 申請號: | 202110382597.0 | 申請日: | 2021-04-09 |
| 公開(公告)號: | CN113094664B | 公開(公告)日: | 2022-11-04 |
| 發明(設計)人: | 陳文容;方毅;董霖;葉新江;呂繁榮;徐啟東 | 申請(專利權)人: | 每日互動股份有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京鍾維聯合知識產權代理有限公司 11579 | 代理人: | 丁慧玲 |
| 地址: | 310012 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 防止 應用程序 反編譯 系統 | ||
1.一種防止安卓應用程序被反編譯系統,其特征在于,
包括預設設置的DEX解析及編輯程序、資源文件解析及編輯程序,混淆文件名生成程序,處理器和存儲有計算機程序的存儲器,當所述計算機程序被處理器執行時,實現以下步驟:
步驟D1、獲取待處理的APK文件中的資源文件,所述資源文件為包括目標包名信息的文件,調用DEX解析及編輯程序從所述資源文件中獲取目標包名信息,調用資源文件解析及編輯程序從所述資源文件中獲取資源清單列表;
步驟D2、基于所述目標包名信息從所述待處理的APK文件中獲取目標java文件,解析所述目標java文件,獲取第一資源信息表,所述第一資源信息表的字段包括變量名稱和int值,所述變量名稱表示該字段在代碼中的名稱,所述int值表示資源id;
步驟D3、調用所述資源文件解析及編輯程序解析所述資源文件,獲取第二資源信息表,所述第二資源信息表的字段包括資源ID以及與資源ID對應的資源字符串或資源文件路徑字符串;
步驟D4、調用所述混淆文件名生成程序為所述第二資源信息表中每一資源文件路徑字符串生成對應的目標混淆文件名;
步驟D5、獲取所述待處理的APK文件對應的資源目錄,基于所述第二資源信息表中的每一資源文件路徑字符串檢索所述待處理的APK文件對應的資源目錄,獲取所述第二資源信息表中所有獲取資源文件路徑字符串對應的目標資源目錄;
步驟D6、遍歷所述第二資源信息表、目標資源目錄、待處理的APK文件和目標java文件,將其中所有的資源文件路徑字符串修改為對應的目標路徑字符串;
所述系統還預設的加密函數、加密密鑰、解密密鑰和解密函數,當所述計算機程序被處理器執行時,在步驟D1之前還實現以下步驟:
步驟C1、監測編譯器是否將待處理的java源代碼全部編譯成對應的第一java字節碼,若編譯完成,則執行步驟S102;
步驟C2、掃描所述第一java字節碼,若掃描到常量字符串,則調用所述加密函數和加密密鑰將掃描到的常量字符串進行加密,得到對應的加密字符串;
步驟C3、將掃描到的常量字符串替換為所述解密函數的調用,并將所述解密函數對應的調用參數設置為該常量字符串對應的加密字符串,得到處理后的第一java字節碼;
步驟C4、基于處理后的第一java字節碼生成所述待處理的APK文件;
當所述計算機程序被處理器執行時,還實現以下步驟:
步驟C41、將所述預設的 解密密鑰切分為多段解密密鑰段;
步驟C42、將所述多段解密密鑰段在所述第一java字節碼對應的class文件中分散存儲;
步驟C43、為每一解密密鑰段設置一密鑰段id,基于每一解密密鑰段的密鑰段id和對應的存儲地址建立密鑰段存儲表,所述密鑰段存儲表包括多條密鑰段記錄,每一密鑰段記錄的字段包括密鑰段id和存儲地址;
步驟C44、將所述密鑰段存儲表的記錄在所述第一java字節碼對應的class文件中分散存儲。
2.根據權利要求1所述的系統,其特征在于,
還包括預設字母表,所述預設字母包括將a-z26個字母隨機打亂順序后得到字母列表,所述字母列表中的字母從0-25依編號,所述混淆文件名生成程序中設置有兩個整型數字int1和int2,所述int1和int2代表當前待混淆的資源文件路徑字符串ID,所述int1和int2配置為26進制數,所述int1和int2的初始值對應的十進制數為0,設置基礎目錄名稱和預設分隔符,int1和int2最長位數設置為4,int1或int2對應的最大10進制數為26^4-1=456975。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于每日互動股份有限公司,未經每日互動股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110382597.0/1.html,轉載請聲明來源鉆瓜專利網。





