java proguard_java混淆之proguard

最近一直想写点公共项目,但有的时候又不像别人拿到我们的源码,(拿到的jar包可以反编译),在此背景下产生了这个文章。

proguard的相关知识我就不多介绍了,下面来点我使用的一些记录

com.github.wvengen

proguard-maven-plugin

2.0.14

package

proguard

${proguard.version}

${project.build.finalName}.jar

${project.build.finalName}.jar

true

-target 1.8

-dontshrink

-dontoptimize

-adaptclassstrings

-ignorewarnings

-keep class org.apache.logging.log4j.util.* { *; }

-dontwarn org.apache.logging.log4j.util.**

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

-keepnames interface **

-keepclassmembers enum * { *; }

-keepparameternames

-keepclasseswithmembers public class * {

public static void main(java.lang.String[]);}

-dontnote javax.annotation.**

-dontnote sun.applet.**

-dontnote sun.tools.jar.**

-dontnote org.apache.commons.logging.**

-dontnote javax.inject.**

-dontnote org.aopalliance.intercept.**

-dontnote org.aopalliance.aop.**

-dontnote org.apache.logging.log4j.**

-dontnote module-info

-keep class com.kafang.atgo.restful.WebApp

-keep class com.cnzh.sms.SmsAutoConfiguration

-keepclassmembers class com.kafang.atgo.restful.WebApp{ *;}

-keep interface * extends * { *; }

-keepclassmembers class * {

@org.springframework.beans.factory.annotation.Autowired *;

@org.springframework.beans.factory.annotation.Value *;

}

${java.home}/lib/rt.jar

${java.home}/lib/jce.jar

net.sf.proguard

proguard-base

${proguard.version}

其实上面的大部分配置都是网上找到的,只需要根据实际情况增加一点特殊情况就可以。

在我的场景中,我拿发短信这个小starter来做测试。

因为spring boot starter需要注入,如果把这个注入配置类混淆后,就没发使用了。(或者你把spring.factories这个文件里面的内容也按照混淆处理)

在这里就需要把注入的这个配置类放行,即

-keep class com.cnzh.sms.SmsAutoConfiguration

接口被放行了,配置类也放行了,然后使用这个jar包就是和普通的一样了,没有任何区别,只是别人就不好看你的源码了

b77231824207?utm_campaign

image.png

嗯,很好,鬼知道上面abcd是啥意思,是不是与其看源码还不如再写一套?恩恩,要的就是这个效果!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值