[发明专利]一种应用程序防重打包方法和系统有效
申请号: | 201711328188.2 | 申请日: | 2017-12-13 |
公开(公告)号: | CN108121899B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 张颖君 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/70 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 打包 方法 系统 | ||
本发明涉及一种应用程序防重打包方法和系统。该方法首先构造能够识别重打包程序并触发异常的防御代码;然后将防御代码植入应用程序中,以防御通过重打包进行的攻击。防御代码由两部分组成,包括识别出重打包程序以及异常触发机制。在实际的防御代码植入过程中,主要通过在多处随机放置,并且进行混淆,增加被攻击者逆向跟踪的难度,实现对安卓应用程序的保护。本发明能够有效的防止攻击者对安卓应用程序以及其它操作系统的应用程序的重打包攻击。
技术领域
本发明涉及应用程序保护技术,尤其涉及一种应用程序防重打包方法和系统,适用于安卓系统以及其它操作系统的应用程序。
技术背景
应用程序重打包主要是指通过非法对应用程序中植入恶意代码、广告信息、恶意链接等操作,并重新发布新的程序以非法获取利益的技术。这种重打包技术目前使用非常广泛,尤其随着手机应用的普及,重打包技术发展更为迅猛。
当前,手机应用十分广泛,用户通过在手机上安装各种应用软件进行交流、娱乐、支付等,极大方便了用户的生活。目前,安卓手机占到了86.4%,截至2017年,安卓应用程序已经下载高达250亿次。安卓应用软件安装到手机是一个APK文件,APK文件通过反编译,根据用户需求进行更改后,再重新打包回去,进行签名重新发布。据报道,86%的恶意软件是通过在正常应用软件进行重打包实现的。安卓软件重打包后,一方面损害了原版作者的权益,另一方面可能给用户的信息和隐私带来很大的威胁。
目前,对上述问题的研究主要针对重打包的检测进行,例如通过基于哈希、基于程序依赖图、基于字符串、基于质心等方法对重打包进行检测。但是,对防重打包的检测与阻断机制仍较缺乏,主要通过加壳或混淆的方法增加逆向攻击的难度。
发明内容
本发明旨在通过设计一种应用程序防重打包方法和系统,有效实现对软件合法性的保护。该方案适用于安卓系统的应用程序,也可以扩展至其它操作系统上的应用程序。
本发明主要是在应用软件中嵌入防御代码,增加重打包的代价,起到防御重打包的作用。有针对性的进行软件重打包防御,需要在其代码中嵌入“防御代码”,且这部分代码不能影响原有软件的正常使用;同时,需要增加攻击者重打包过程中的代价,最终起到防御重打包的作用。
考虑到“防御代码”嵌入原有程序,若仅有一份这样的防御代码可能会被攻击者识别,从而被攻击者移除。因此本发明优选使用多份“防御代码”,由于每一份防御代码均可进行防御,最终增加攻击者的成本。具体包括:防御代码的构成和防御代码的植入两部分。防御代码的构成包括重打包程序识别模块和重打包程序异常触发模块两部分。防御代码植入优选采用多份的植入,并且增加攻击者识别的难度。
本发明采用的技术方案如下:
一种应用程序防重打包方法,包括以下步骤:
1)构造能够识别重打包程序并触发异常的防御代码;
2)将防御代码植入应用程序中,以防御通过重打包进行的攻击。
进一步地,所述防御代码不能影响原有应用程序的正常使用,并增加攻击者重打包的难度。
进一步地,所述防御代码通过计算原始程序的散列值,并与实际动态运行过程中的散列值比较,来识别出重打包程序;如果散列值不匹配则触发异常,使应用程序无法正常使用。
进一步地,使用MD5对应用程序中所有代码、资源文件以及其他文件进行计算,得到所述散列值。
进一步地,所述防御代码触发的异常尽量远离所述防御代码本身的位置,以避免被攻击者反调试并跟踪。
进一步地,所述触发异常是修改原应用程序的部分数据,增加一个随机值,使其不能完成原有功能,从而产生异常。
进一步地,在应用程序中植入多份防御代码,以增加被攻击者逆向跟踪的难度,实现对应用程序的保护。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711328188.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种程序保护方法和装置
- 下一篇:一种可控制的生物信息识别系统