Spring Boot怎样利用Allatori让代码混合

2018.04.16 潍坊网站扶植

167

Spring Boot怎样利用Allatori让代码混合


  此次给大师带来Spring Boot怎样利用Allatori让代码混合,Spring Boot利用Allatori让代码混合的注重事变有哪些,上面便是实战案例,一路来看一下。

 

  Allatori混合手艺先容

 

  Allatori是一个Java混合器,它属于第二代混合器,是以它能够或许全方位地掩护你的常识产权。Allatori具备以下几种掩护体例:定名混合,流混合,调试信息混合,字符串混合,和水印手艺。对教导和非贸易名目来讲这个混合器是收费的。撑持war和jar文件格局,并且许可对须要混合代码的利用法式增加有用日期。有名目须要对代码停止掩护,比拟低级的计划便是对代码停止混合,打包以后的文件停止反编译后,便能够看到结果。另外,利用Allatori打的包体积也会小一点。

 

  一个很通俗的maven工程,差别的是在根目次下插手Allatori的jar包。

 

  上面咱们来看看pom.xml文件:

 

  <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

 

  <modelVersion>4.0.0</modelVersion>

 

  <groupId>com.lovnx</groupId>

 

  <artifactId>confusion</artifactId>

 

  <version>0.0.1-SNAPSHOT</version>

 

  <packaging>jar</packaging>

 

  <build>

 

  <plugins>

 

  <plugin>

 

  <groupId>org.springframework.boot</groupId>

 

  <artifactId>spring-boot-maven-plugin</artifactId>

 

  </plugin>

 

  <!--Allatori plugin start-->

 

  <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}/target/allatori.xml</argument>

 

  </arguments>

 

  </configuration>

 

  </plugin>

 

  <!--Allatori plugin end-->

 

  </plugins>

 

  </build>

 

  <dependencies>

 

  <!--Test Begin-->

 

  <dependency>

 

  <groupId>junit</groupId>

 

  <artifactId>junit</artifactId>

 

  <scope>test</scope>

 

  </dependency>

 

  <!--Test End-->

 

  <!--springboot启动-->

 

  <dependency>

 

  <groupId>org.springframework.boot</groupId>

 

  <artifactId>spring-boot-starter-web</artifactId>

 

  </dependency>

 

  </dependencies>

 

  <parent>

 

  <groupId>org.springframework.boot</groupId>

 

  <artifactId>spring-boot-starter-parent</artifactId>

 

  <version>1.5.8.RELEASE</version>

 

  </parent>

 

  </project>

 


潍坊网站扶植


  利用maven打包插件,Spring Boot构建的工程,Allatori的设置装备摆设在上面也有申明,Allatori设置装备摆设外面比拟主要的是:

 

  <argument>${basedir}/lib/allatori.jar</argument>

 

  <argument>${basedir}/target/allatori.xml</argument>

 

  指定Allatori的allatori.jar文件途径,若是你的工程是一个pom工程,能够在父工程中放lib目次,而后子工程只须要:

 

  <argument>/lib/allatori.jar</argument>

 

  便可。

 

  allatori.xml这个文件也很主要,看看此中的内容:

 

  <config>

 

  <input>

 

  <jar in="confusion-0.0.1-SNAPSHOT.jar"out="confusion-0.0.1-SNAPSHOT-obfuscated.jar"/>

 

  </input>

 

  <keep-names>

 

  <class access="protected+">

 

  <field access="protected+"/>

 

  <method access="protected+"/>

 

  </class>

 

  </keep-names>

 

  <property name="log-file"value="log.xml"/>

 

  </config>

 

  便是对Allatori混合器的详细设置装备摆设,这里能够设置装备摆设良多信息,良多种战略,也能够指定哪些类不被混合,详细的各类体例能够在在文末附件外面的文档获得。

 

  这里须要申明的是:

 

  <input>

 

  <jar in="confusion-0.0.1-SNAPSHOT.jar"out="confusion-0.0.1-SNAPSHOT-obfuscated.jar"/>

 

  </input>

 

  confusion-0.0.1-SNAPSHOT.jar这个是打包后的未被混合的包,而confusion-0.0.1-SNAPSHOT-obfuscated.jar是混合后的包,这个是咱们须要的。



潍坊网站扶植公司

 

  打包步骤

 

  1、clean maven工程。

 

  2、将resources上面的allatori.xml文件复制到target目次上面。

 

  3、install maven工程,看到以下信息后表现胜利:

 

  ################################################

 

  ##

 

  ###################

 

  ##############

 

  ################

 

  #####################

 

  ##

 

  #DEMO VERSION!#

 

  #NOT FOR COMMERCIAL USE!#

 

  ##

 

  #Demo version adds System.out's#

 

  #and gives'ALLATORI_DEMO'name#

 

  #to some fields and methods.#

 

  ##

 

  ##

 

  #Obfuscation by Allatori Obfuscator v6.4 DEMO#

 

  ##

 

  #http://www.allatori.com#

 

  ##

 

  ################################################

 

  4、胜利后的工程:

 

  Spring Boot利用Allatori代码混合的体例

 

  箭头所指处便是咱们须要的包,此包代码已被混合。

 

  结果检查

 

  这里利用反编译东西对混合后的包停止检查,我用的是jd-gui这个软件,玲珑适用。

 

  TestApplication.java混合前:

 

  import org.springframework.boot.SpringApplication;

 

  import org.springframework.boot.autoconfigure.SpringBootApplication;

 

   SpringBootApplication

 

  public class TestApplication{

 

  public static void main(String[]args){

 

  SpringApplication.run(TestApplication.class,args);

 

  }

 

  }

 

  TestApplication.java混合后:

 

  import java.io.PrintStream;

 

  import org.springframework.boot.SpringApplication;

 

  import org.springframework.boot.autoconfigure.SpringBootApplication;

 

   SpringBootApplication

 

  public class TestApplication

 

  {

 

  public static String ALLATORIxDEMO(String a)

 

  {

 

  int tmp4_3=4;

 

  int tmp7_6=1;

 

  int tmp21_18=a.length();

 

  int tmp25_24=1;

 

  tmp25_24;

 

  int j;

 

  int?=tmp25_24;

 

  int k=tmp21_18;

 

  int tmp35_31=(j=new char[tmp21_18]-1);

 

  tmp35_31;

 

  int i=5<<4^(0x2^0x5);

 

  (tmp4_3<<tmp4_3^tmp7_6<<tmp7_6);

 

  if(tmp35_31>=0)

 

  {

 

  int tmp45_44=j;

 

  j--;

 

  ?[tmp45_44]=((char)(a.charAt(tmp45_44)^i));

 

  int tmp66_63=(j--);

 

  ?[tmp66_63]=((char)(a.charAt(tmp66_63)^k));

 

  }

 

  return new String(?);

 

  }

 

  public static void main(String[]a)

 

  {

 

  System.out.println("\n################################################\n##\n###################\n##############\n################\n#####################\n##\n#Obfuscation by Allatori Obfuscator v6.4 DEMO#\n##\n#http://www.allatori.com#\n##\n################################################\n");SpringApplication.run(TestApplication.class,a);

 


潍坊网站扶植


  }

 

  }

 

  TestController.java混合前:

 

  import org.springframework.web.bind.annotation.GetMapping;

 

  import org.springframework.web.bind.annotation.RestController;

 

   RestController

 

  public class TestController{

 

   GetMapping("/test")

 

  public String test(){

 

  return"88888888888888888";

 

  }

 

  }

 

  TestController.java混合后:

 

  import org.springframework.web.bind.annotation.GetMapping;

 

  import org.springframework.web.bind.annotation.RestController;

 

   RestController

 

  public class TestController

 

  {

 

   GetMapping({"/test"})

 

  public String test()

 

  {

 

  return ALLATORIxDEMO("*]*]*]*]*]*]*]*]*");

 

  }

 

  public static String ALLATORIxDEMO(String a)

 

  {

 

  int tmp27_24=a.length();

 

  int tmp31_30=1;

 

  tmp31_30;

 

  int j;

 

  int?=tmp31_30;

 

  int k=tmp27_24;

 

  int tmp41_37=(j=new char[tmp27_24]-1);

 

  tmp41_37;

 

  int i=(0x3^0x5)<<4^0x5;

 

  (2<<3^0x2);

 

  if(tmp41_37>=0)

 

  {

 

  int tmp51_50=j;

 

  j--;

 

  ?[tmp51_50]=((char)(a.charAt(tmp51_50)^i));

 

  int tmp72_69=(j--);

 

  ?[tmp72_69]=((char)(a.charAt(tmp72_69)^k));

 

  }

 

  return new String(?);

 

  }

 

  }


   转载请说明:潍坊网站扶植:http://h-waiyucheng.com/newsshow/210.html

关头词

最新案例

接洽德律风 400-6065-301

留言