[发明专利]一种基于随机混淆的Android软件协同加固方法有效
申请号: | 201710255286.1 | 申请日: | 2017-04-19 |
公开(公告)号: | CN107122629B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 舒明雷;周书旺;王英龙;杨美红;杨明;魏诺;孔祥龙;高天雷 | 申请(专利权)人: | 山东省计算中心(国家超级计算济南中心) |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/60 |
代理公司: | 济南泉城专利商标事务所37218 | 代理人: | 支文彬 |
地址: | 250014 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 随机 混淆 android 软件 协同 加固 方法 | ||
技术领域
本发明涉及软件加固领域,具体涉及一种基于随机混淆的Android软件协同加固方法。
背景技术
Android是一款源码开放的移动智能终端操作系统,它基于Linux内核,由谷歌开发。Android自上市以来,其市场占有率逐年攀升,2016年上半年Android在全球智手机操作系统的占有率为86.2%。目前Android系统已经遍布我们生活的方方面面,例如手机、平台电脑、电视、手表、车载系统甚至健康检测设备等。
一个Android软件开发从需求分析、到最后的定型发布,以及随后的不断升级,都需要开发单位投入大量的人财物。但是Android软件具有很强的流通性,无法防止被恶意篡改或盗版。被篡改或盗版的Android软件不仅会导致用户信息泄露,严重的还会导致用户资金损失,同时这在很大程度上损害了开发者的利益,所以Android软件的安全保护十分重要。
发明内容
本发明为了克服以上技术的不足,提供了一种有效防止Android软件被篡改和盗版的一种基于随机混淆的Android软件协同加固方法。
本发明克服其技术问题所采用的技术方案是:
一种基于随机混淆的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。
上述步骤d)中的加密方式为AES加密。
本发明的有益效果是:本基于随机混淆的Android软件协同加固方法第一是对dex头文件随机混淆加固,第二是对bin文件的安全动态加载加固。通过随机混淆的协同加固方法对Android软件进行保护,增强了代码的安全性。有效防止Android软件被恶意篡改或盗版的现象发生。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图1对本发明做进一步说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省计算中心(国家超级计算济南中心),未经山东省计算中心(国家超级计算济南中心)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710255286.1/2.html,转载请声明来源钻瓜专利网。