[发明专利]一种基于随机混淆的Android软件协同加固方法有效
申请号: | 201710255286.1 | 申请日: | 2017-04-19 |
公开(公告)号: | CN107122629B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 舒明雷;周书旺;王英龙;杨美红;杨明;魏诺;孔祥龙;高天雷 | 申请(专利权)人: | 山东省计算中心(国家超级计算济南中心) |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/60 |
代理公司: | 济南泉城专利商标事务所37218 | 代理人: | 支文彬 |
地址: | 250014 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于随机混淆的Android软件协同加固方法,包括如下步骤a)解压获得classes.dex文件和bin文件;b)对classes.dex文件头header进行随机混淆;c)对源文件中的bin文件进行重命名;d)计算混淆后的classes.dex文件的hash值hash_dex;e)计算加载器loder的hash值hash_loder;f)对重命名后的bin文件进行加密并生成密文ciphertext;g)重新签名,打包生成加固后的APK。通过对dex头文件随机混淆加固以及对bin文件的安全动态加载加固。通过随机混淆的协同加固方法对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。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省计算中心(国家超级计算济南中心),未经山东省计算中心(国家超级计算济南中心)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710255286.1/,转载请声明来源钻瓜专利网。