[发明专利]java代码混淆方法、系统、计算机设备及存储介质在审
申请号: | 202111389699.1 | 申请日: | 2021-11-22 |
公开(公告)号: | CN114090965A | 公开(公告)日: | 2022-02-25 |
发明(设计)人: | 邓卫平;梅雨;孙禄明 | 申请(专利权)人: | 全景智联(武汉)科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 广东奥益专利代理事务所(普通合伙) 44842 | 代理人: | 田树杰 |
地址: | 430000 湖北省武汉市东湖新*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | java 代码 混淆 方法 系统 计算机 设备 存储 介质 | ||
本发明涉及计算机技术领域,具体涉及一种java代码混淆方法、系统、计算机设备及存储介质。该方法包括:获取待混淆文件,判断所述待混淆文件类型,当所述待混淆文件为jar包时,解析所述jar包,定位classes文件夹所在位置,读取配置文件并进行混淆替换,生成新的jar包;当所述待混淆文件为编译阶段的java代码时,在java代码中添加混淆工具依赖,在编译时启用混淆工具进行混淆,生成混淆后的jar包次导入或导出结果的文件下载地址,以根据下载地址下载导入或导出结果文件。本发明能够自定义选择混淆方案、混淆范围,且具有字符串加密、确保混淆后的代码功能逻辑不受影响,极大提高了代码阅读难度,实现了代码的安全性,且用户具有很高的可配置性。
技术领域
本发明涉及计算机技术领域,具体涉及一种java代码混淆方法、系统、计算机设备及存储介质。
背景技术
Java是一种C++类型的基于对象的编程语言。它有着广泛的使用性,是目前较为流行的编程语言,因为Java平台可以被安装在大量的各种不同可应用设备上,被广泛用于web、app和服务器开发。
在java代码应用时,如果将编译后的jar包直接放到服务器上,那么一旦服务器被黑、或者在上传jar包的过程中文件遭到泄漏,不法分子很容易通过逆向工程获取源码,推测代码逻辑,从而找到系统漏洞,进行攻击,所以对源码进行保护是业界的共识。但是,目前没有比较有效的java代码保护方法。
发明内容
为解决现有技术中缺乏对有效的java代码有效保护的问题,本发明提供了一种java代码混淆方法、系统、计算机设备及存储介质,用户通过自定义选择混淆方案、混淆范围,且具有字符串加密、确保混淆后的代码功能逻辑不受影响,极大提高了代码阅读难度,实现了代码的安全性,且用户具有很高的可配置性。
本发明采用以下技术方案实现:
一种java代码混淆方法,该方法包括:
获取待混淆文件,其中,所述待混淆文件为jar包或编译阶段的java代码;
判断所述待混淆文件类型,当所述待混淆文件为jar包时,解析所述jar包,定位classes文件夹所在位置,读取配置文件并进行混淆替换,生成新的jar包;
当所述待混淆文件为编译阶段的java代码时,在java代码中添加混淆工具依赖,在编译时启用混淆工具进行混淆,生成混淆后的jar包。
作为本发明的进一步方案,当所述待混淆文件为jar包时,jar包进行混淆的方法还包括:
获取混淆规则,根据读取的配置文件确定待混淆的类文件及所述类文件的引用树;
根据混淆规则对所述类文件的类名、方法名、变量名进行替换,生成新的jar包。
进一步的,在对所述类文件的类名、方法名、变量名进行替换时,还通过JVM语法解析器对引用树进行遍历,使所述引用树的相关引用变量保持替换前后一致。
进一步的,解析所述jar包时,还包括检测并移除代码中无用的类、字段、方法和特性;读取配置文件并进行混淆替换时,还包括使用配置文件中配置的字符对类、方法、字段进行重命名,通过JVM分析类、方法、字段的引用链,将所有引用了被混淆的类、方法、字段的对应位置也进行相同的名称替换,并对混淆的类加入冗余字段及冗余方法,完成混淆替换。
作为本发明的进一步方案,当所述待混淆文件为编译阶段的java代码时,还包括:
将添加的混淆工具的生命周期设置为编译时运行,并通过读取配置文件选择混淆字符、确定不被混淆类文件以及获取混淆规则;
通过混淆规则对待混淆的类、方法上添加混淆注解;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全景智联(武汉)科技有限公司,未经全景智联(武汉)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111389699.1/2.html,转载请声明来源钻瓜专利网。