[發(fā)明專利]一種APK的加固方法和裝置,及動態(tài)加載方法和裝置在審
| 申請?zhí)枺?/td> | 201611139477.3 | 申請日: | 2016-12-12 |
| 公開(公告)號: | CN106845167A | 公開(公告)日: | 2017-06-13 |
| 發(fā)明(設計)人: | 劉敏 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京天悅專利代理事務所(普通合伙)11311 | 代理人: | 田明,張海秀 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 apk 加固 方法 裝置 動態(tài) 加載 | ||
1.一種APK文件的加固方法,其特征在于,包括:
獲取待加固的原APK中需要保護的原數(shù)據(jù);
將所述原數(shù)據(jù)進行加密處理,得到加密數(shù)據(jù);
對所述原APK進行加固處理,生成目標APK,其中,所述加密數(shù)據(jù)以文件形式存儲于所述目標APK的預設位置。
2.根據(jù)權利要求1所述的加固方法,其特征在于,所述預設位置為目標APK的classes.dex文件中的位置。
3.根據(jù)權利要求2所述的加固方法,其特征在于,所述預設位置為目標APK的classes.dex文件的文件頭和/或數(shù)據(jù)區(qū)的N個指定位置,N≥1。
4.根據(jù)權利要求3所述的加固方法,其特征在于:所述N=1,所述指定位置為所述數(shù)據(jù)區(qū)的頭部或尾部。
5.根據(jù)權利要求3所述的加固方法,其特征在于,所述N=2;所述加密數(shù)據(jù)包括第一加密數(shù)據(jù)和第二加密數(shù)據(jù);
所述指定位置包括第一指定位置和第二指定位置,第一加密數(shù)據(jù)在目標APK的classes.dex文件中的位置為所述第一指定位置,第二加密數(shù)據(jù)在目標APK的classes.dex文件中的位置為所述第二指定位置。
6.根據(jù)權利要求1所述的加固方法,其特征在于:所述原數(shù)據(jù)為原APK中的非classes.dex文件中的數(shù)據(jù);
所述對所述原APK進行加固處理,生成目標APK,包括:
根據(jù)加密數(shù)據(jù)在目標APK中的所述預設位置,將加密數(shù)據(jù)添加到原APK中的對應位置;
將添加后的原APK中除所述原數(shù)據(jù)之外的其它文件進行重新打包簽名,生成目標APK。
7.根據(jù)權利要求1所述的加固方法,其特征在于,所述原數(shù)據(jù)為原APK的classes.dex文件中的數(shù)據(jù);
所述對所述原APK進行加固處理,生成目標APK,包括:
記錄原數(shù)據(jù)在原APK的classes.dex文件中的原位置信息;
根據(jù)加密數(shù)據(jù)在目標APK中的所述預設位置,將加密數(shù)據(jù)和所述原位置信息添加到原APK中的的對應位置;
刪除原APK的classes.dex文件中的所述原數(shù)據(jù),得到第二classes.dex文件;
重新計算并更新第二classes.dex文件的文件頭信息,得到第三classes.dex文件;
將第三classes.dex文件和原APK的除其classes.dex文件外的其它文件進行重新打包簽名,生成目標APK。
8.一種APK文件的加固裝置,其特征在于,包括:
加密數(shù)據(jù)生成模塊,用于獲取待加固的原APK中需要保護的原數(shù)據(jù),將所述原數(shù)據(jù)進行加密處理,得到加密數(shù)據(jù);
目標APK生成模塊,用于對所述原APK進行加固處理,生成目標APK,其中,所述加密數(shù)據(jù)以文件形式存儲于所述目標APK的預設位置。
9.一種加固APK的動態(tài)加載方法,其特征在于,所述加固APK為采用權利要求1-7中任一APK文件的加固方法生成的目標APK,所述動態(tài)加載方法包括:
解壓所述目標APK;
根據(jù)加密數(shù)據(jù)在目標APK中的存儲位置,提取所述加密數(shù)據(jù),并對加密數(shù)據(jù)進行解密得到原數(shù)據(jù);
根據(jù)所述原數(shù)據(jù)和解壓后的目標APK,通過dex類加載器對目標APK的classes.dex文件的進行動態(tài)加載。
10.一種加固APK的動態(tài)加載裝置,其特征在于,包括:
目標APK解壓模塊,用于解壓所述目標APK;
原數(shù)據(jù)提取模塊,用于根據(jù)加密數(shù)據(jù)在目標APK中的存儲位置,提取所述加密數(shù)據(jù),并對加密數(shù)據(jù)進行解密得到原數(shù)據(jù);
APK動態(tài)加載模塊,用于根據(jù)所述原數(shù)據(jù)和解壓后的目標APK,通過dex類加載器對目標APK的classes.dex文件的進行動態(tài)加載。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經(jīng)北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611139477.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





