一种应用程序保护系统和方法_2

文档序号:8259295阅读:来源:国知局
应的解释器。该解释器与混淆所用的置换矩阵一一对应,也就是解释器需要将指令进行还原。
[0039]而且,还原不能是显式的,因为这样会造成安全隐患。根据置换矩阵对解释器中每一条指令的解释函数中的内容进行置换,这样保证了在解释执行由同一置换矩阵生成的混淆app时能够正确还原指令的功能。
[0040]在这种情况下,对于解释器的逆向分析将会变得十分困难,攻击者并不能从逆向后的代码中直接的得到有关置换矩阵的信息,而对于解释函数的解读则是十分繁琐的,会耗费大量的时间与精力。
[0041]在本发明中Token通过OTA的方式向终端用户发布,OTA(Over-The-Air)可以通过移动通信(GSM或CDMA)网络的空中接口对移动数据及应用进行远程管理,而空中接口可以采用WAP、GPRS、CDMAlX以及广为普及的短消息(SMS)技术,以支持各类终端的无线下载。通过采用OTA方式,能够保证用户仅能得到属于自己的Token,这也保证了 Token的安全性.。而且,由于Token中并不显式的携带置换矩阵,而对于底层解释器的提取和逆向存在着很大的困难,这就进一步保证了置换矩阵的安全性,也就是保证了整个系统的安全性。
[0042]再回到图1,对于本发明Android应用程序保护系统进行说明。如图1所示,通过混淆器100对应用程序111中的每一条指令利用置换矩阵进行混淆并生成变换后的应用程序112,变换后的应用程序112被发布到手机系统。
[0043]另一方面,Token生成器200也根据相同的置换矩阵用于解释经过指令集置换的应用程序的“变换的应用程序对应的解释器”113和用于安装经置换的应用程序的系统补丁(未图示)并且利用OTA方式将变换的应用程序对应的解释器” 113和用于安装经置换的应用程序的系统补丁(未图示)发布到手机系统。
[0044]在手机系统利用“变换的应用程序对应的解释器”113对变化后的应用程序进行解释。另一方面,“变换的应用程序对应的解释器”113和原有的通用解释器115共存,手机系统的其他部分也会遭到一定程度的修改以使得在执行混淆后的应用程序时能够正确地切换到“变换的应用程序对应的解释器” 113。
[0045]下面对于本发明的应用程序保护方法进行说明。图3是表示本发明一实施方式的应用程序保护方法的流程图。
[0046]如图3所示,本发明的应用程序保护方法包括下述步骤:
置换矩阵生成步骤SlOl:对应一台特定设备A,生成一个随机置换矩阵M ;
Token生成步骤S102:根据所述随机置换矩阵M,生成对应特定设备A的Token,其中,所述Token包括用于解释经过指令集置换的应用程序的解释器I和支持安装此类变换后的APK程序的系统补丁,其中,解释器I能够基于矩阵M的置换关系进行变换,例如,置换矩阵M指定了 i到j的置换关系(1、j为数字),则将指令xi与指令\解释函数进行置换得到;指令集置换步骤S103:解释器根据所述置换矩阵M对待保护的应用程序进行指令集置换生成保护后的应用程序,具体地,根据置换矩阵M,对特定待保护的Android应用程序进行静态的代码反编译,获取一个APK程序的所有字节码(Dex Bytecode),然后将待保护的应用程序字节码xi置换为字节码Xj ;
Token发布步骤S104:将Token发布给特定设备A的持有者,通过OTA更新的方式,替换原有的解释器;
应用程序发放步骤S105:将保护后的应用程序分发给特定设备A的持有者,通过原有的安装方式即可实现安装;以及
应用程序安装步骤S106:在新安装的解释器I负责对对保护后的应用程序进行解释并执行安装,同时也支持原有正常代码的执行。
[0047]利用本发明的应用程序保护系统以及方法,能够有效的防止攻击者通过对应用程序反编译进行攻击。适用于能够对终端系统有一定掌控力的场景下,比如云POS是基于Android定制系统的,通过此发明可以保证运行于云POS之上应用程序的安全,而开发者无需任何改造工作。在本发明中,通过采用指令集置换思想的混淆技术,能够有效协助Android app发行商对自己开发的App应用程序进行数据字版权保护并且能够有效抵御动态注入、动态调试等来自系统底层的攻击。
[0048]以上例子主要说明了本发明的应用程序保护系统以及方法。尽管只对其中一些本发明的【具体实施方式】进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。
【主权项】
1.一种应用程序保护系统,其特征在于,具备: 混淆器,用于对应用程序中的指令进行指令集置换;以及 Token生成器,用于生成Token,其中所述Token包括用于解释经过指令集置换的应用程序的解释器和用于安装经置换的应用程序的系统补丁。
2.如权利要求1所述的应用程序保护系统,其特征在于, 所述混淆器使用置换矩阵对应用程序中的指令进行指令集置换, 所述解释器使用与所述混淆器一一对应的置换矩阵对经过指令集置换的应用程序中的指令进行解释。
3.如权利要求1所述的应用程序保护系统,其特征在于, 所述混淆器使用随机置换矩阵对应用程序中的指令进行指令集置换。
4.如权利要求1所述的应用程序保护系统,其特征在于, 所述混淆器对应用程序中的每一条指令进行指令集置换,所述解释器对经过指令集置换的应用程序中的每一条指令进行解释。
5.如权利要求1所述的应用程序保护系统,其特征在于, 所述混淆器对应用程序中指令进行指令集置换以使得保留原指令的所有操作数而变换原指令的操作码。
6.一种应用程序保护方法,其特征在于,包括下述步骤: 置换矩阵生成步骤,对于设备A生成置换矩阵M ; Token生成步骤,根据所述置换矩阵M生成对应设备A的Token,其中,所述Token至少包括用于解释经过指令集置换的应用程序的解释器; 指令集置换步骤,根据所述矩阵M对待保护的应用程序进行指令集置换生成保护后的应用程序; Token发布步骤,将Token发布给设备A的持有者; 应用程序发放步骤,将保护后的应用程序分发给设备A的持有者;以及 应用程序安装步骤,以所述Token中的所述解释器对保护后的应用程序执行安装。
7.如权利要求6所述的应用程序保护方法,其特征在于, 在所述置换矩阵生成步骤中,随机产生所述置换矩阵。
8.如权利要求6所述的应用程序保护方法,其特征在于, 在所述Token生成步骤中,生成的所述Token还包括用于安装经置换的应用程序的系统补丁。
9.如权利要求6所述的应用程序保护方法,其特征在于, 所述指令集置换步骤包括下述子步骤: 根据所述置换矩阵M,对待保护的应用程序进行静态的代码反编译并获取一个应用程序的所有字节码,其中所述置换矩阵M指定i到j的置换关系,其中i,j为自然数; 将待保护的应用程序子节码从Xi置换到Xj。
10.如权利要求6所述的应用程序保护方法,其特征在于, 在所述Token发布步骤中,通过OTA方式向将Token发布给设备A的持有者。
【专利摘要】本发明涉及一种应用程序保护系统以及应用程序保护系统方法。该应用程序保护系统具备:混淆器,用于对应用程序中的指令进行指令集置换;以及Token生成器,用于生成Token,其中所述Token包括用于解释经过指令集置换的应用程序的解释器和用于安装经置换的应用程序的系统补丁。利用本发明的应用程序保护系统以及应用程序保护系统方法,能够有效抵御动态注入、动态调试等来自系统底层的攻击,能够有效对应用程序进行数字版权保护。
【IPC分类】G06F21-14, G06F21-51
【公开号】CN104573424
【申请号】CN201310501315
【发明人】柴洪峰, 鲁志军, 李卷孺, 束骏亮, 华锦芝, 徐泽伟, 万四爽
【申请人】中国银联股份有限公司
【公开日】2015年4月29日
【申请日】2013年10月23日
【公告号】WO2015058639A1
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1