好用的代码混淆工具 -- classfinal

ClassFinal是一个无需修改代码的安全加密工具,针对Javaclass文件进行字节码加密和混淆,适用于SpringFramework。使用Maven插件实现自动加密,并通过javaagent在启动时指定密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ClassFinal 是 java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework。

基于 -agentJava:xxx.jar 这一原理,加密时对 class 文件做了两次处理,一次是对 class 文件的字节码完全加密,一次是对 class 文件混淆,这个混淆是保留成员和方法,对方法内部实现进行隐藏;解密时,判断如果该类是自己加密过的,找到完全加密的字节码进行解密,如果不是自己加密的就跳过。其对 class 文件混淆,就是方便类似 SpringBoot等三方框架直接分析 class 文件。

  <plugins>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <!-- https://gitee.com/roseboy/classfinal -->
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <password>#</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
                    <packages>com.first.order.handle</packages>
                    <cfgfiles>application.yml</cfgfiles>
                    <excludes>com.first.order.handle.OrderHandleApplication</excludes>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

参数说明
-file        加密的jar/war完整路径
-packages    加密的包名(可为空,多个用","分割)
-libjars     jar/war包lib下要加密jar文件名(可为空,多个用","分割)
-cfgfiles    需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
-exclude     排除的类名(可为空,多个用","分割)
-classpath   外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
-pwd         加密密码,如果是#号,则使用无密码模式加密
-code        机器码,在绑定的机器生成,加密后只可在此机器上运行
-Y   

加密文件启动

加密后的项目需要设置 javaagent 来启动,并且要指定密码。

java -javaagent:test-encrypted.jar -jar test-encrypted.jar
proguard4.10 官方版软件,免费下载 1、官网地址:http://proguard.sourceforge.net/ 截止2013-12-15 官网正式版本为4.10, 提供4.11Beat版 2、 解压 proguard4.10.zip ,运行官方例子如下: cd examples java -jar ../lib/proguard.jar @proguard.pro 运行之后在examples目录下生成 proguard_out.jar 3、新手入门请参照本目录下文档《ProGuard代码混淆操作说明.docx》 先牛刀小试一下,混淆自己本地的工程,支持jar,war,ear,目录(class)等方式 4、proguard常见参数标签的用法在《proguard标签的用法.pdf》 5、混淆只是 proguard 功能之一,其它还有压缩、优化等 6、proguard混淆首先得根据自己工程具体情况 来决定,哪些类需要混淆,哪些 类不能混淆,对包名、类名、方法名、参数名、变量名等其它信息 如何处理 可以通过参数 配置。 7、别忘记加上参数 printmapping obf.map 混淆结束后,处理前与处理后对应关系会记录在obf.map中,文件名可以自定义 参照附件中《obf.map》 注:该文档自动生成 8、《testjava.pro》是我自己的配置文档(一个helloWorld),仅供参考 9、日记《success-log.txt》 混淆有利有弊,混淆须谨慎 1、混淆后的代码出错,如何精确快速定位?如果对系统架构,编程,数据配置等非常清楚,请忽 略 2、为了保护源码不外泄,义无反顾,我们只能选择混淆,那么Proguard,就是不错的选择!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值