[发明专利]一种基于Java代码的混淆方法和装置有效
申请号: | 201811290226.4 | 申请日: | 2018-10-31 |
公开(公告)号: | CN109614771B | 公开(公告)日: | 2020-07-03 |
发明(设计)人: | 李家良 | 申请(专利权)人: | 同盾控股有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 311121 浙江省杭州市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 代码 混淆 方法 装置 | ||
本申请实施例提供了一种基于Java代码的混淆方法和装置,该基于Java代码的混淆方法包括:获取待混淆的代码信息,该代码信息包括源代码、源代码中需要编译的类、函数和变量;对代码信息进行预编译,以确定具有预设格式的归档文件;根据利用预设的反编译工具对归档文件进行的反编译,结合混淆需求,确定是否对归档文件进行混淆;当确定对归档文件进行混淆时,根据混淆需求,对归档文件执行混淆操作,以确定混淆后的目标文件;其中,混淆操作包括对字符串常量进行加密和对类、函数以及XML文件中的类进行混淆改名。通过简单有效的方式实现对Java源代码的完全混淆,提高Java源代码的安全性。
技术领域
本申请涉及编程技术领域,特别是涉及一种基于Java代码的混淆方法和装置。
背景技术
目前Java源代码反编译查看源代码逻辑很容易,现有的对Java混淆的工具插件存在一定的混淆不彻底的情况,使反编译查看分析源码逻辑的成本降低。现有技术中所采用的maven proguard插件,作为Java源代码混淆工具,但其中很多类、函数名都未做混淆,字符串也未做混淆,反编译后都可以看到字符串常量的真实值;XML(中文:可扩展标记语言;英文:Extensible Markup Language)等配置文件中的类未做混淆,其涉及到的Java类也是原名呈现,反编译后都可以看到实际名,对于分析系统原理轻而易举,因此存在较大的安全隐患。另外,现有技术中还存在对Java字节码进行加密的方案,操作较为复杂,需要改jvm虚拟机(中文:Java虚拟机;英文:Java Virtual Machine),极有可能造成虚拟机异常,不具有商用价值。
发明内容
鉴于上述问题,本申请实施例提供一种基于Java代码的混淆方法,通过将字符串加密、对未混淆的类、函数进行混淆以及配置文件中的无法被混淆的类、函数进行脚本混淆,进而解决现有技术中存在混淆不彻底以及有些内容无法混淆的问题。
相应的,本申请实施例还提供了一种基于Java代码的混淆装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种基于Java代码的混淆方法,所述方法包括:
获取待混淆的代码信息,所述代码信息包括源代码、所述源代码中需要编译的类、函数和变量;
对所述代码信息进行预编译,以确定具有预设格式的归档文件;
根据利用预设的反编译工具对所述归档文件进行的反编译,结合混淆需求,确定是否对所述归档文件进行混淆;
当确定对所述归档文件进行混淆时,根据所述混淆需求,对所述归档文件执行混淆操作,以确定混淆后的目标文件;
其中,所述混淆操作包括对字符串常量进行加密和对类、函数以及XML文件中的类进行混淆改名。
相应的,本申请实施例还公开了一种基于Java代码的混淆装置,所述装置包括:
信息获取模块,用于获取待混淆的代码信息,所述代码信息包括源代码、所述源代码中需要编译的类、函数和变量;
预编译模块,用于对所述代码信息进行预编译,以确定具有预设格式的归档文件;
确定模块,用于根据利用预设的反编译工具对所述归档文件进行的反编译,结合混淆需求,确定是否对所述归档文件进行混淆;
混淆模块,用于当确定对所述归档文件进行混淆时,根据所述混淆需求,对所述归档文件执行混淆操作,以确定混淆后的目标文件;
其中,所述混淆操作包括对字符串常量进行加密和对类、函数以及XML文件中的类进行混淆改名。
本申请实施例还提供一种装置,包括处理器以及存储器,其中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同盾控股有限公司,未经同盾控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811290226.4/2.html,转载请声明来源钻瓜专利网。