[发明专利]一种Java代码的混淆方法、恢复方法及其装置在审
申请号: | 201711408742.8 | 申请日: | 2017-12-22 |
公开(公告)号: | CN108170433A | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 高文涛;蒋纪匀 | 申请(专利权)人: | 上海你我贷互联网金融信息服务有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30;G06F21/14 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;卢军峰 |
地址: | 200941 上海市宝*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 混淆 规则文件 编译 文件格式规范 规则存储 第三方 运行时 打包 类库 恢复 灵活 配置 | ||
本发明公开了一种Java代码的混淆方法、恢复方法及其装置,该Java代码的混淆方法包括:定义混淆规则,以及将混淆规则存储在混淆规则文件中;根据混淆规则,对Java类文件进行混淆,获得混淆的Java类文件;将混淆的Java类文件和混淆规则文件打包成JAR文件。本发明通过定义混淆规则,灵活地配置哪些Java类文件需要混淆,此外,混淆的Java类文件还实现了混淆细节,从而防止被反编译,以及混淆后的Java类文件依然符合Java类文件格式规范,能够参与编译,而且不会造成Java程序依赖的其他第三方框架和类库运行时的错误。
技术领域
本发明涉及计算机安全领域,具体来说,涉及一种Java代码的混淆方法、恢复方法及其装置。
背景技术
源代码作为科技公司的核心资产应当被严格保护起来,以防他人窃取。虽然绝大多数公司都有一系列安全措施杜绝源代码泄露,但是Java程序由于其自身特点,存在源代码被泄露的风险。Java编译器将源代码编译后生成Java虚拟机可以执行的字节码,并以特定的文件格式和内容布局将字节码存储在Java类文件中。Java反编译工具可以读取Java类文件的内容,从而反向编译出Java程序的源代码。
对于做系统输出或者运营公有云服务的科技公司来说,Java程序是部署在客户的计算机环境,或者第三方公有云平台(例如,阿里云,腾讯云等)。因此,如何防止客户未经授权传播Java程序,或者黑客窃取Java程序,进而反编译Java类文件导致源代码细节泄露,是一个亟待解决的问题。
目前防止反编译的技术主要分为两种:命名混淆技术和Java类文件加密技术,具体地:
命名混淆技术是通过更改Java程序中的变量名、方法名等方式,降低代码可读性,增大阅读反编译后代码的难读。但本质上并没有解决问题,通过仔细阅读反编译后的代码,还是能够理解程序的实现细节;
类文件加密技术是通过使用加密算法,将Java类文件内容全部加密的方式来阻止反编译。该方法从本质上解决了反编译的问题,但同时带来其他问题。首先,加密后的类文件不符合Java类文件格式规范,不是一个合法的Java类文件。如果其他Java类在编译时期依赖这个类,Java编译器因无法解析加密后的Java类文件而报错,导致该方法不能用于Java类库的加密。其次,很多第三方框架和类库会在程序启动或者运行时动态地读取Java类文件。如果Java程序使用了这些第三方框架和类库,由于Java类文件被加密,导致运行时出错。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种Java代码的混淆方法、恢复方法及其装置,其可以灵活地配置混淆规则,从而决定哪些Java类需要混淆,混淆后的Java类文件依然能够参与编译,而且不会造成其他第三方框架和类库运行时的错误。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种Java代码的混淆方法。
该Java代码的混淆方法包括:定义混淆规则,以及将混淆规则存储在混淆规则文件中;根据混淆规则,对Java类文件进行混淆,获得混淆的Java类文件;将混淆的Java类文件和混淆规则文件打包成JAR文件。
根据本发明的一个实施例,根据混淆规则,对Java类文件进行混淆,获得混淆的Java类文件包括:根据混淆规则,确定需混淆的Java类文件;将需混淆的Java类文件中类方法的代码段进行混淆,从而获得混淆的Java类文件。
根据本发明的另一方面,提供了一种Java代码的恢复方法。
该Java代码的恢复方法包括:将恢复算法写入动态库,将动态库植入到Java程序运行的操作系统中;以及调用指定的类加载器,以及通过指定的类加载器调用动态库中的恢复算法,从而恢复混淆的Java类文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海你我贷互联网金融信息服务有限公司,未经上海你我贷互联网金融信息服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711408742.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:可配置的数据包解码系统及方法
- 下一篇:危险路径的并行获取方法及装置