[发明专利]一种应用程序保护系统和方法在审
申请号: | 201310501315.X | 申请日: | 2013-10-23 |
公开(公告)号: | CN104573424A | 公开(公告)日: | 2015-04-29 |
发明(设计)人: | 柴洪峰;鲁志军;李卷孺;束骏亮;华锦芝;徐泽伟;万四爽 | 申请(专利权)人: | 中国银联股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/51 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 臧霁晨;汤春龙 |
地址: | 200135 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 保护 系统 方法 | ||
技术领域
本发明涉及计算机安全领域,特别涉及对Android应用程序进行保护的系统和方法。
背景技术
随着智能手机的推广和普及,手机安全问题更为突出,各种各样恶意软件不断涌现,对一些安全应用程序进行恶意操作,导致应用程序不可用或者遭到篡改。
为了保护应用程序,在专利文献1(CN201110057866.2)提出了一种应用程序保全保护方法以及数字版权保护保护系统。专利文献1提出的 应用程序版权保护方法及数字版权保护系统主要是通过在应用中增加鉴权模块,通过与服务器进行鉴权来进行保护。
在专利文献2(CN200580047317.X)中也提出了一种 用于保护软件应用防止盗版的方法和系统。专利文献2提出的用于保护软件应用防止盗版的方法和系统主要是通过将程序的一部分放到服务器执行来进行保护,通过执行在服务器的部分程序对软件应用进行保护。
以上两种方案的缺点是如果通过对程序进行反编译,将鉴权模块进行修改或者屏蔽,则无法保护应用程序。
Android应用程序APK的全称是Android Package,APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到可执行代码Dex部分,即Android Dalvik执行程序。Android可执行代码是由Java语言编写的程序编译和转化而成的Dalvik字节码。这种字节码一般非常容易反编译。恶意软件和攻击者通过反编译APK文件进行汇编级的代码分析,并修改或插入自己的代码,重新签名打包为APK文件,以达到改变程序原有行为的目的。
已有的APK保护技术主要是通过代码混淆来保护代码。ProGuard当前主流的混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。
同样,ProGuard的方式并不能阻止攻击者反编译后,对Android应用程序进行攻击。
发明内容
鉴于上述问题,本发明旨在提供一种能够有效防止攻击者通过对应用程序反编译进行攻击并且能够抵御动态注入、动态调试等攻击Android应用程序的系统以及方法。
本发明的应用程序保护系统,其特征在于,具备:
混淆器,用于对应用程序中的指令进行指令集置换;以及
Token生成器,用于生成Token,其中所述Token包括用于解释经过指令集置换的应用程序的解释器和用于安装经置换的应用程序的系统补丁。
优选地,所述混淆器使用置换矩阵对应用程序中的指令进行指令集置换,所述解释器使用与所述混淆器一一对应的置换矩阵对经过指令集置换的应用程序中的指令进行解释。
优选地,所述混淆器使用随机置换矩阵对应用程序中的指令进行指令集置换。
优选地,所述混淆器对应用程序中的每一条指令进行指令集置换,所述解释器对经过指令集置换的应用程序中的每一条指令进行解释。
优选地,所述混淆器对应用程序中指令进行指令集置换以使得保留原指令的所有操作数而变换原指令的操作码。
本发明的应用程序保护方法,其特征在于,包括下述步骤:
置换矩阵生成步骤,对于设备A生成置换矩阵M;
Token生成步骤,根据所述置换矩阵M生成对应设备A的Token,其中,所述Token至少包括用于解释经过指令集置换的应用程序的解释器;
指令集置换步骤,根据所述矩阵M对待保护的应用程序进行指令集置换生成保护后的应用程序;
Token发布步骤,将Token发布给设备A的持有者;
应用程序发放步骤,将保护后的应用程序分发给设备A的持有者;以及
应用程序安装步骤,以所述Token中的所述解释器对保护后的应用程序执行安装。
优选地,在所述置换矩阵生成步骤中,随机产生所述置换矩阵。
优选地,在所述Token生成步骤中,生成的所述Token还包括用于安装经置换的应用程序的系统补丁。
优选地,所述指令集置换步骤包括下述子步骤:
根据所述置换矩阵M,对待保护的应用程序进行静态的代码反编译并获取一个应用程序的所有字节码,其中所述置换矩阵M指定i到j的置换关系,其中i,j为自然数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银联股份有限公司;,未经中国银联股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310501315.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:嵌有信息安全管理模块的IC卡智能热能表
- 下一篇:一种焊点疲劳寿命预测方法