混淆代碼springboot+proguard配置


1. pom.xml 添加proguard插件配置

<build>
    <plugins>
        <plugin>
            <groupId>com.github.wvengen</groupId>
            <artifactId>proguard-maven-plugin</artifactId>
            <version>2.0.14</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>proguard</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <proguardVersion>5.3.3</proguardVersion>
                <injar>${project.build.finalName}.jar</injar>
                <outjar>${project.build.finalName}.jar</outjar>
                <obfuscate>true</obfuscate>
                <proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>  //proguard.cfg 配置文件位置
                <libs>
                    <!-- Include main JAVA library required.-->
                    <lib>${java.home}/lib/rt.jar</lib>
                    <!-- Include crypto JAVA library if necessary.-->
                    <lib>${java.home}/lib/jce.jar</lib>
                </libs>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>net.sf.proguard</groupId>
                    <artifactId>proguard-base</artifactId>
                    <version>5.3.3</version>
                </dependency>
            </dependencies>
        </plugin>

2.proguard.cfg 配置文件

-target 1.8 ##指定java版本號
-dontshrink ##默認是開啟的,這里關閉shrink,即不刪除沒有使用的類/成員
-dontoptimize ##默認是開啟的,這里關閉字節碼級別的優化
-useuniqueclassmembernames ##對於類成員的命名的混淆采取唯一策略
-adaptclassstrings ## 混淆類名之后,對使用Class.forName('className')之類的地方進行相應替代
-dontusemixedcaseclassnames ## 混淆時不生成大小寫混合的類名,默認是可以大小寫混合
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod ##對異常、注解信息在runtime予以保留,不然影響springboot啟動
-keepclasseswithmembers public class * { public static void main(java.lang.String[]);} ##保留main方法的類及其方法名
-keepclassmembers enum * { *; }  ##保留枚舉成員及方法

3.參考

https://www.cnblogs.com/lmq3321/p/10320671.html
https://blog.csdn.net/songluyi/article/details/79554928

4. 其他方式

  1. Github地址: https://github.com/wvengen/proguard-maven-plugin

  2. 插件名稱: proguard-maven-plugin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM