zoukankan      html  css  js  c++  java
  • 使用allatori混淆代码

    引言

    为了保密需要,我们开发出来的程序在实际部署之前,需要先将jar包的代码进行混淆,让用户使用反编译也无法获得源码。
    allatori就是这样一个混淆java jar包代码的工具。

    操作步骤

    Step1.在pom中添加插件

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
            <execution>
                <id>copy-and-filter-allatori-config</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <outputDirectory>${basedir}/target</outputDirectory>
                    <resources>
                        <resource>
                            <directory>${basedir}/allatori</directory>
                            <includes>
                                <include>allatori.xml</include>
                            </includes>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
            <execution>
                <id>run-allatori</id>
                <phase>package</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <executable>java</executable>
            <arguments>
                <argument>-Xms128m</argument>
                <argument>-Xmx512m</argument>
                <argument>-jar</argument>
                <argument>${basedir}/lib/allatori.jar</argument>
                <argument>${basedir}/lib/allatori.xml</argument>
            </arguments>
        </configuration>
    </plugin>
    

    Step2.copy jar包到插件里配置的路径

    Step3.编写配置文件,并放在插件里配置的路径下

    示例配置:

    • 配置中最重要的的配置是<jar in ="xxx" out="xxx"/><ignore-classes>
      • 第一个标签用来指定将什么包混淆,混淆后的输出包名是什么
      • 第二个标签用来指定什么包、类不进行混淆。注意,主类不要进行混淆,其他第三方jar包的代码不要进行混淆(否则会出现java.lang.NoClassDefFoundError错误)。
    <config>
        <input>
            <!-- in表示输出的原始jar包,out表示输出的混淆后的jar包,后者名称可自定义,也可以是war -->
            <jar in="../target/akkaload-core-0.0.1-SNAPSHOT.jar"
                 out="../target/akkaload-core-0.0.1-SNAPSHOT.jar"/>
        </input>
        <keep-names>
            <class access="protected+">
                <field access="protected+"/>
                <method access="protected+"/>
            </class>
        </keep-names>
    
        <property name="log-file" value="log.xml"/>
    
        <!-- 忽略的包或类,这些文件将不被混淆 -->
        <ignore-classes>
            <!-- 不要混淆主类 -->
            <class template="class com.navi.akkaload.AkkaloadApplication" />
            <!-- 不要混淆第三方的代码,否则会运行jar包会报错java.lang.NoClassDefFoundError -->
            <class template="class org.dom4j.*" />
            <class template="class akka.actor.*" />
            <class template="class *alibaba*" />
            <class template="class *org*" />
            <class template="class *rabbitmq*" />
            <class template="class *springframework*" />
            <class template="class *lombok*" />
        </ignore-classes>
    
        <!-- 到期时间(到期后无法启动jar) 格式:yyyy/mm/dd-->
        <!--<expiry date="2021/04/03" string="SERVICE EXPIRED!"/>-->
        <!-- 随机命名混淆字符-->
        <!--<property name="random-seed" value="abcdef ghnljk svi"/>-->
    
    </config>
    

    效果

    打开混淆成功后的jar包,会发现代码已经被混淆。

  • 相关阅读:
    水晶苍蝇拍:从“航空母舰”看企业竞争优势分析 (2010-05-11 11:48:38)
    水晶苍蝇拍:为何设定了安全边际后还吃大跌?
    水晶苍蝇拍:“低风险,高不确定性”的启示 (2010-04-24 22:02:13)
    水晶苍蝇拍:我这样看投资的安全性 (2009-08-27 20:08:53)
    水晶苍蝇拍:不同企业的估值差告诉我们什么? (2010-04-21 20:56:19)
    水晶苍蝇拍:估值,像雾像雨又像风 (2010-03-15 10:44:16)
    水晶苍蝇拍:长持的简单逻辑 (2009-05-25 18:08:43)
    Android中RelativeLayout各个属性的含义
    有道词典 Andriod 版本数据格式分析
    电驴提示“该内容尚未提供权利证明,无法提供下载”之解决办法详解
  • 原文地址:https://www.cnblogs.com/daheww/p/15713596.html
Copyright © 2011-2022 走看看