[發明專利]一種基于隨機混淆的Android軟件協同加固方法有效
| 申請號: | 201710255286.1 | 申請日: | 2017-04-19 |
| 公開(公告)號: | CN107122629B | 公開(公告)日: | 2017-12-26 |
| 發明(設計)人: | 舒明雷;周書旺;王英龍;楊美紅;楊明;魏諾;孔祥龍;高天雷 | 申請(專利權)人: | 山東省計算中心(國家超級計算濟南中心) |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/60 |
| 代理公司: | 濟南泉城專利商標事務所37218 | 代理人: | 支文彬 |
| 地址: | 250014 山東省濟*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 隨機 混淆 android 軟件 協同 加固 方法 | ||
1.一種基于隨機混淆的Android軟件協同加固方法,其特征在于,包括如下步驟:
a)解壓需要加固的Android軟件,分別獲得classes.dex文件和bin文件;
b)對classes.dex文件頭header進行隨機混淆,對classes.dex文件增加無用隨機代碼;
c)對源文件中的bin文件進行重命名并將原bin文件名稱作為加載器名稱,完成對加載器的重命名,重命名后的加載器loder將classes.dex與重命名后的bin文件隔離;
d)計算混淆后的classes.dex文件的hash值hash_dex,并對hash_dex進行加密,將加密后為hash_dex文件保存至加載器loder中;
e)計算加載器loder的hash值hash_loder,計算重命名后的bin文件hash值hash_core;
f)對重命名后的bin文件進行加密并生成密文ciphertext,將ciphertext、hash_loder和hash_core組成文件date;g)將date文件、bin文件以及混淆后的classes.dex文件進行重新簽名,打包生成加固后的APK,
所述步驟b)中的隨機混淆包括如下步驟:
b-1)利用整數隨機函數生成一個隨機數N,1500<N<2500;
b-2)計算機以N為參數并輸入隨機字符生成函數,生成一個長度length=N的byte數組;
b-3) 將長度為N的byte數組插入到dex頭文件的第P個位置上,其中P=0x28+N%(0x70-0x28),
其中,0x70為dex頭文件原始程度,0x28為magic、checksum、signature、fileSize和headerSize 5字段的長度和;
b-4) 對隨機數N進行自定義加密,加密結果為8byte編碼,并將8byte編碼追加到dex文件尾部;
b-5) 更新dex文件校驗碼字段checksum,用于根據alder32算法校驗dex文件除去magic、checksum兩字段外的文件的正確性;
b-6) 更新dex文件哈希值字段signature,signature是利用SHA-1算法計算dex文件除去magic、checksum和signature三字段外的哈希值,用于判斷文件完整性;
b-7) 更新dex文件長度字段fileSize的值為:fileSize=filesize+N+8;
b-8) 更新dex頭文件長度字段headerSize的值為:headerSize=headerSize+N+8。
2.根據權利要求1所述的基于隨機混淆的Android軟件協同加固方法,其特征在于:所述步驟d)中的加密方式為AES加密。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東省計算中心(國家超級計算濟南中心),未經山東省計算中心(國家超級計算濟南中心)許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710255286.1/1.html,轉載請聲明來源鉆瓜專利網。





