[发明专利]代码混淆方法、代码运行方法及装置在审
申请号: | 201610076963.9 | 申请日: | 2016-02-03 |
公开(公告)号: | CN107038354A | 公开(公告)日: | 2017-08-11 |
发明(设计)人: | 孙泽夺;泮晓波;丁健生 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 混淆 方法 运行 装置 | ||
技术领域
本申请涉及计算机领域,具体而言,涉及一种代码混淆方法、代码运行方法及装置。
背景技术
Java层(Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言,一般,Java具备由数据访问层、业务逻辑层和界面层所组成的三层架构)的代码混淆是保护代码逻辑不被黑客轻易破解的有效手段之一,其方法主要是在代码编译以后利用外部工具将代码中的类名,方法名和成员变量名等修改成比较难以理解的名称。目前,java层代码混淆主要依靠ProGuard(一款用于压缩、优化和混淆Java代码的工具),但ProGuard在使用过程中至少存在以下三方面的缺陷:
第一、开发人员在使用ProGuard进行Java代码的混淆时,需要熟悉Java代码的业务逻辑并预先知晓哪些类、方法、成员变量可混淆或不可混淆,因此,ProGuard对开发人员的要求较高。
第二、proguard工具无法混淆用户在so文件(Android系统中的动态链接库文件)中需要加载的类,这些类本身不在java层编译的jar包(可包含类的文件包)体现,若未经特殊配置,则proguard会默认将其混淆,进而导致应用程序错误。
第三、proguard工具混淆jar包不能很好的混淆OSGi(Open Service Gateway Initiative,面向Java的动态模型系统)框架的客户端程序,由于OSGi框架的客户端程序一般都是基于类名来查找相应的bundle(一中可执行文件,用于在Android系统中的Activity之间传递数据)的类加载器的,所以使用proguard工具只能将这些类保持原名或者至少保持类的包名不变,而由于OSGi框架的设计导致其框架代码绝大多数的类都是通过查找相应bundle的类加载器来加载类,因此proguard工具无法显著提高其混淆率。
综上,现有技术中主要存在应用程序的Java层代码混淆率较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种代码混淆方法、代码运行方法及装置,以至少解决现有技术中应用程序的Java层代码混淆率较低的技术问题。
根据本申请实施例的一个方面,提供了一种代码运行方法,包括:通过预设的静态替换操作,获取待调用的对象名,其中,上述静态替换操作为预先在目标应用程序的第一目标文件中配置的函数,上述第一目标文件用于记录上述目标应用程序的安装信息;判断上述待调用的对象名是否包含在预设的混淆表中,其中,上述混淆表为根据上述第一目标文件以及第二目标文件生成的表,上述混淆表用于指示对象名与混淆名之间的对应关系,上述第二目标文件用于记录上述目标应用程序的声明信息;若上述待调用的对象名包含在上述混淆表中,从上述混淆表中查找并输出与上述待调用的对象名对应的混淆名。
根据本申请实施例的一个方面,还提供了一种代码混淆方法,包括:从目标应用程序中获取第一目标文件及第二目标文件;解析上述第一目标文件及上述第二目标文件,按照预设规则生成上述混淆表,其中,上述混淆表中不包含从上述第二目标文件中解析出的对象名;对上述第一目标文件执行静态替换操作;按照上述混淆表,将上述第一目标文件的对象名混淆为与上述对象名对应的混淆名;将混淆后的上述第一目标文件存入上述目标应用程序。
根据本申请实施例的另一方面,又提供了一种代码运行装置,包括:第一获取单元,用于通过预设的静态替换操作,获取待调用的对象名,其中,上述静态替换操作为预先在目标应用程序的第一目标文件中配置的函数,上述第一目标文件用于记录上述目标应用程序的安装信息;判断单元,用于判断上述待调用的对象名是否包含在预设的混淆表中,其中,上述混淆表为根据上述第一目标文件以及第二目标文件生成的表,上述混淆表用于指示对象名与混淆名之间的对应关系,上述第二目标文件用于记录上述目标应用程序的声明信息;第一处理单元,用于若上述待调用的对象名包含在上述混淆表中,从上述混淆表中查找并输出与上述待调用的对象名对应的混淆名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610076963.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种EL型全电动汽车转移器
- 下一篇:一种管片快速卸载装置