[发明专利]应用防破解方法和装置在审
申请号: | 201510728491.6 | 申请日: | 2015-10-30 |
公开(公告)号: | CN105279399A | 公开(公告)日: | 2016-01-27 |
发明(设计)人: | 王桂明;包沉浮 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 破解 方法 装置 | ||
技术领域
本申请涉及互联网领域,具体涉及应用安全领域,尤其涉及应用防破解方法和装置。
背景技术
目前,在用户安装应用时,通常通过下载包含有应用的源代码的安装包的方式进行安装。为防止应用被破解,即恢复出安装包中的源代码,在已知的技术中,通过将安装包中的源代码预先进行加密,然后在经加密后的源代码加载在内存中运行时,再对加密的源代码进行解密,以防止应用被破解。
然而,当采用上述方式防止应用被破解时,经解密之后的源代码最终依然会全部加载在内存中运行,导致破解程序依然可以通过不断的捕获内存中的代码而获取应用的全部源代码,完成对应用的破解。
发明内容
本申请提供了应用防破解方法和装置,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了应用防破解方法,该方法包括:获取应用对应的被第一虚拟机解析的第一虚拟机指令,第一虚拟机指令基于对应用的源代码进行编译生成,第一虚拟机为解析第一虚拟机指令以生成机器指令的虚拟机;选取第一虚拟机指令中部分第一虚拟机指令,以及将部分第一虚拟机指令转换为被第二虚拟机解析的第二虚拟机指令,第二虚拟机为解析第二虚拟机指令生成机器指令的虚拟机;基于第一虚拟机指令中未被转换的第一虚拟机指令与第二虚拟机指令,生成应用对应的可执行文件,以使得可执行文件被执行时,由第一虚拟机、第二虚拟机分别执行未被转换的第一虚拟机指令、第二虚拟机指令。
第二方面,本申请提供了应用防破解装置,该装置包括:获取单元,配置用于获取应用对应的被第一虚拟机解析的第一虚拟机指令,第一虚拟机指令基于对应用的源代码进行编译生成,第一虚拟机为解析第一虚拟机指令以生成机器指令的虚拟机;处理单元,配置用于选取第一虚拟机指令中部分第一虚拟机指令,以及将部分第一虚拟机指令转换为被第二虚拟机解析的第二虚拟机指令,第二虚拟机为解析第二虚拟机指令生成机器指令的虚拟机;生成单元,配置用于基于第一虚拟机指令中未被转换的第一虚拟机指令与第二虚拟机指令,生成应用对应的可执行文件,以使得可执行文件被执行时,由第一虚拟机、第二虚拟机分别执行未被转换的第一虚拟机指令、第二虚拟机指令。
本申请提供的应用防破解方法和装置,通过获取应用对应的被第一虚拟机解析的第一虚拟机指令;选取第一虚拟机指令中部分第一虚拟机指令,以及将部分第一虚拟机指令转换为被第二虚拟机解析的第二虚拟机指令;基于第一虚拟机指令中未被转换的第一虚拟机指令与第二虚拟机指令,生成应用对应的可执行文件,以使得可执行文件被执行时,由第一虚拟机、第二虚拟机分别执行未被转换的第一虚拟机指令、第二虚拟机指令。实现了由第一虚拟机、第二虚拟机分别解析第一虚拟机指令、第二虚拟机指令,使得即使破解程序从内存中提取出应用的源代码对应的所有虚拟机指令,因无法对第一虚拟机指令、第二虚拟机指令进行区分,导致破解程序无法基于获取的虚拟机指令对源代码进行恢复,从而防止应用被破解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2示出了根据本申请的应用防破解方法的一个实施例的流程图;
图3示出了Java虚拟机解析虚拟机指令生成机器指令的原理图;
图4示出了根据本申请的应用防破解方法的另一个实施例的流程图;
图5示出了根据本申请的应用防破解装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的应用防破解方法或应用防破解装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510728491.6/2.html,转载请声明来源钻瓜专利网。