[发明专利]一种应用程序防重打包方法和系统有效
| 申请号: | 201711328188.2 | 申请日: | 2017-12-13 |
| 公开(公告)号: | CN108121899B | 公开(公告)日: | 2021-07-30 |
| 发明(设计)人: | 张颖君 | 申请(专利权)人: | 中国科学院软件研究所 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/70 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
| 地址: | 100190 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 应用程序 打包 方法 系统 | ||
1.一种应用程序防重打包方法,其特征在于,包括以下步骤:
1)构造能够识别重打包程序并触发异常的防御代码;
2)将防御代码植入应用程序中,以防御通过重打包进行的攻击;
所述防御代码通过计算原始程序的散列值,并与实际动态运行过程中的散列值比较,来识别出重打包程序;如果散列值不匹配则触发异常,使应用程序无法正常使用;所述通过计算原始程序的散列值,并与实际动态运行过程中的散列值比较,是对程序中所有代码、资源文件以及其他文件进行计算,得到散列值,并比较程序静态编译过程中的散列值和运行时内存中程序副本的散列值;
所述防御代码触发的异常尽量远离所述防御代码本身的位置,以避免被攻击者反调试并跟踪;
所述将防御代码植入应用程序中,是在应用程序中随机选取多处复杂代码的位置并植入多份防御代码,以增加被攻击者逆向跟踪的难度,实现对应用程序的保护;所述随机选取多处复杂代码的位置,是根据应用程序的代码总量和要放置的防御代码的总数,来计算出放置的随机位置;通过计算应用程序的循环数、分支数,得到输出的随机变量,满足均匀分布且比较复杂的位置,从而使得放置位置均匀且不易被攻击者破坏。
2.如权利要求1所述的方法,其特征在于,所述防御代码不能影响原有应用程序的正常使用,并增加攻击者重打包的难度。
3.如权利要求1所述的方法,其特征在于,所述触发异常是修改原应用程序的部分数据,增加一个随机值,使其不能完成原有功能,从而产生异常。
4.一种采用权利要求1~3中任一权利要求所述方法的应用程序防重打包系统,其特征在于,包括:
防御代码构成单元,用于构造能够识别重打包程序并触发异常的防御代码;
防御代码植入单元,用于将防御代码植入应用程序中,以防御通过重打包进行的攻击。
5.如权利要求4所述的系统,其特征在于,所述防御代码构成单元包括重打包程序识别模块和重打包程序异常触发模块;所述重打包程序识别模块用于识别重打包程序;所述重打包程序异常触发模块用于触发异常,迫使发现的重打包程序运行时出错,使得重打包程序无法正常运行。
6.如权利要求4所述的系统,其特征在于,所述防御代码植入单元在应用程序中植入多份防御代码,以增加被攻击者逆向跟踪的难度,实现对应用程序的保护。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711328188.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种程序保护方法和装置
- 下一篇:一种可控制的生物信息识别系统





