Spring Boot和Obfuscation代码Proguard

问题描述 投票:0回答:1

我做了一个应用程序弹簧启动,我使用maven。我也想混淆代码。我是在proguard maven插件的帮助下完成的。这是pom.xml中的代码:

  <build>
     <finalName>${artifactId}</finalName>
    <plugins>
        <plugin>
        <groupId>com.github.wvengen</groupId>
        <artifactId>proguard-maven-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals><goal>proguard</goal></goals>
            </execution>
        </executions>
        <configuration>
            <proguardVersion>6.0beta1</proguardVersion>
            <injar>${project.build.finalName}.jar</injar>
            <outjar>${project.build.finalName}.jar</outjar>
            <obfuscate>true</obfuscate>
            <proguardInclude>${basedir}/proguard.conf</proguardInclude>
            <libs>
                <lib>${java.home}/lib/rt.jar</lib>
                <lib>${java.home}/lib/jce.jar</lib>
            </libs>
        </configuration>
        <dependencies>
            <dependency>
                <groupId>net.sf.proguard</groupId>
                <artifactId>proguard-base</artifactId>
                <version>6.0beta1</version>
                <scope>system</scope> <systemPath>${basedir}/src/main/resources/libs/proguard/proguard.jar</systemPath>
            </dependency>
        </dependencies>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <mainClass>com.dfd.Application</mainClass>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这是我的proguard.conf文件:

#-injars BOOT-INF\lib\
#-injars BOOT-INF\classes\

-libraryjars 'C:\Program Files\Java\jre1.8.0_201\lib\rt.jar'

-keepdirectories
-dontshrink
-dontoptimize
-dontobfuscate
-obfuscationdictionary 'obfuc.txt'
-classobfuscationdictionary 'obfuc.txt'
-packageobfuscationdictionary 'obfuc.txt'
-dontnote
-ignorewarnings

# Keep - Applications. Keep all application classes, along with their 'main' methods.
-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum  * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# Also keep - Database drivers. Keep all implementations of java.sql.Driver.
-keep class * extends java.sql.Driver

# Also keep - Swing UI L&F. Keep all extensions of javax.swing.plaf.ComponentUI,
# along with the special 'createUI' method.
-keep class * extends javax.swing.plaf.ComponentUI {
    public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent);
}

# Keep - Native method names. Keep all native class/method names.
-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * {
    native <methods>;
}

我正在尝试在Intellegi Idea中构建一个jar文件,但是我遇到了很多错误。结果,生成的罐子没有通过混淆。我做错了什么,以及如何使混淆得以实现?谢谢。

日志:

 [proguard] ProGuard, version 6.0.3
 [proguard] Reading program jar [D:\Yandex.Disk\YandexDisk\programming\intellegi_idea\dfd-editor-projects\dfd-editor-v0.4\target\dfd-editor_proguard_base.jar] (filtered)
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/Application.class] unexpectedly contains class [com.dfd.Application]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/GeneratorCode$1.class] unexpectedly contains class [com.dfd.logic.GeneratorCode$1]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/COutput.class] unexpectedly contains class [com.dfd.model.blocks.cells.COutput]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/factory/CInputCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.factory.CInputCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/maincreator/CellCreator$1.class] unexpectedly contains class [com.dfd.model.blocks.cells.maincreator.CellCreator$1]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/parsed/CellConstantsCreator.class] unexpectedly contains class [com.dfd.model.blocks.parsed.CellConstantsCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/collections/SpecialList.class] unexpectedly contains class [com.dfd.model.collections.SpecialList]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/generator/code/ClassGenerator.class] unexpectedly contains class [com.dfd.logic.generator.code.ClassGenerator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/generator/code/Method.class] unexpectedly contains class [com.dfd.logic.generator.code.Method]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/generator/code/Pair.class] unexpectedly contains class [com.dfd.logic.generator.code.Pair]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/CInput.class] unexpectedly contains class [com.dfd.model.blocks.cells.CInput]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/factory/CCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.factory.CCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/factory/CTempDatabaseCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.factory.CTempDatabaseCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/collections/comparators/LineComparator.class] unexpectedly contains class [com.dfd.model.collections.comparators.LineComparator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/generator/code/GeneralGenerator.class] unexpectedly contains class [com.dfd.logic.generator.code.GeneralGenerator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/generator/code/InterfaceGenerator.class] unexpectedly contains class [com.dfd.logic.generator.code.InterfaceGenerator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/Cell.class] unexpectedly contains class [com.dfd.model.blocks.cells.Cell]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/CProcess.class] unexpectedly contains class [com.dfd.model.blocks.cells.CProcess]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/factory/COutputCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.factory.COutputCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/maincreator/CellCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.maincreator.CellCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/parsed/CellText.class] unexpectedly contains class [com.dfd.model.blocks.parsed.CellText]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/entity/Diagram.class] unexpectedly contains class [com.dfd.model.entity.Diagram]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/controller/DfdController.class] unexpectedly contains class [com.dfd.controller.DfdController]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/logic/GeneratorCode.class] unexpectedly contains class [com.dfd.logic.GeneratorCode]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/CTempDatabase.class] unexpectedly contains class [com.dfd.model.blocks.cells.CTempDatabase]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/cells/factory/CProcessCreator.class] unexpectedly contains class [com.dfd.model.blocks.cells.factory.CProcessCreator]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/Line.class] unexpectedly contains class [com.dfd.model.blocks.Line]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/blocks/parsed/CellConstants.class] unexpectedly contains class [com.dfd.model.blocks.parsed.CellConstants]
 [proguard] Warning: class [BOOT-INF/classes/com/dfd/model/collections/ListElem.class] unexpectedly contains class [com.dfd.model.collections.ListElem]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.5.RELEASE\spring-boot-starter-web-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.5.RELEASE\spring-boot-starter-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.5.RELEASE\spring-boot-starter-logging-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar]
 [proguard] Warning: class [META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class] unexpectedly contains class [org.apache.logging.log4j.util.ProcessIdUtil]
 [proguard] Warning: class [META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class] unexpectedly contains class [org.apache.logging.log4j.util.StackLocator]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-core\5.0.9.RELEASE\spring-core-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-jcl\5.0.9.RELEASE\spring-jcl-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.5.RELEASE\spring-boot-starter-json-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.6\jackson-databind-2.9.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.6\jackson-core-2.9.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.6\jackson-datatype-jdk8-2.9.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.6\jackson-datatype-jsr310-2.9.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.6\jackson-module-parameter-names-2.9.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.5.RELEASE\spring-boot-starter-tomcat-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.12.Final\hibernate-validator-6.0.12.Final.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-web\5.0.9.RELEASE\spring-web-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-beans\5.0.9.RELEASE\spring-beans-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-webmvc\5.0.9.RELEASE\spring-webmvc-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-aop\5.0.9.RELEASE\spring-aop-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-context\5.0.9.RELEASE\spring-context-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\spring-expression\5.0.9.RELEASE\spring-expression-5.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-starter-thymeleaf\2.0.5.RELEASE\spring-boot-starter-thymeleaf-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\thymeleaf\thymeleaf-spring5\3.0.9.RELEASE\thymeleaf-spring5-3.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\thymeleaf\thymeleaf\3.0.9.RELEASE\thymeleaf-3.0.9.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\attoparser\attoparser\2.0.4.RELEASE\attoparser-2.0.4.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\unbescape\unbescape\1.1.5.RELEASE\unbescape-1.1.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\thymeleaf\extras\thymeleaf-extras-java8time\3.0.1.RELEASE\thymeleaf-extras-java8time-3.0.1.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-devtools\2.0.5.RELEASE\spring-boot-devtools-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot\2.0.5.RELEASE\spring-boot-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.5.RELEASE\spring-boot-autoconfigure-2.0.5.RELEASE.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\jsoup\jsoup\1.11.3\jsoup-1.11.3.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\googlejavaformat\google-java-format\1.6\google-java-format-1.6.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\guava\guava\22.0\guava-22.0.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\errorprone\error_prone_annotations\2.0.18\error_prone_annotations-2.0.18.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar]
 [proguard] Reading library jar [C:\Users\admin_test\.m2\repository\com\google\errorprone\javac-shaded\9+181-r4173-1\javac-shaded-9+181-r4173-1.jar]
 [proguard] Reading library jar [C:\Program Files\Java\jre1.8.0_201\lib\rt.jar]
 [proguard] Reading library jar [C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
 [proguard] Warning: there were 31 classes in incorrectly named files.
 [proguard]          You should make sure all file names correspond to their class names.
 [proguard]          The directory hierarchies must correspond to the package hierarchies.
 [proguard]          (http://proguard.sourceforge.net/manual/troubleshooting.html#unexpectedclass)
 [proguard] Reading library jar [C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar]
 [proguard] Preparing output jar [D:\Yandex.Disk\YandexDisk\programming\intellegi_idea\dfd-editor-projects\dfd-editor-v0.4\target\dfd-editor.jar]
java maven spring-boot proguard proguard-maven-plugin
1个回答
0
投票

对于混淆,我使用这个应用程序:github

这个应用程序完美混淆了!

UPD:

注意内部jar - 库:混淆器压缩它们,它们变得不正确。在混淆之后,有必要用旧的(从旧的可执行jar文件中)替换可执行jar文件中的所有jar文件库。

© www.soinside.com 2019 - 2024. All rights reserved.