Einführung in die Allatori Verschleierungstechnologie
Allatori ist ein Java -Obfuscator, der zur Verschleierung der zweiten Generation gehört, sodass es Ihre Rechte an geistigem Eigentum in allen Aspekten schützen kann. Allatori hat die folgenden Schutzmethoden: Benennung der Verschleierung, Verschleierung von Streams, Debug -Informationen, die Verschleierung von String und Wasserzeichen -Technologie. Dieser Obfuscator ist kostenlos für Bildungs- und nichtkommerzielle Projekte. Kriegs- und JAR -Dateiformate werden unterstützt und ermöglichen das Hinzufügen gültiger Daten zu Anwendungen, die den Code verschleiern müssen. Es gibt Projekte, die den Code schützen müssen. Die grundlegendere Lösung besteht darin, den Code zu verschleiern. Nach dem Dekompeten der verpackten Datei können Sie den Effekt sehen. Darüber hinaus ist die Größe der mit Allatori hergestellten Taschen etwas kleiner.
Projekteinführung
Ein sehr gewöhnliches Maven -Projekt, der Unterschied besteht darin, das JAR -Paket von Allatori in das Stammverzeichnis hinzuzufügen.
Schauen wir uns die Datei pom.xml an:
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance 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> <verzeichnisse> $ {basiert}/Allatori </directory> <clycus> <Clycut> Allatori.xml </include> <incly> <filtering> true </filtering> </ressourcen> </ressourcen> </configuration> </execution> </executions> </plugin> <plogin> <gruppe> </gruppen> oder g.Code.mous.mous.mous.mous.mous <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> </execution> </execution> </executions> <configuration> <executable>java</executable> <arguments> <Argument> -xms128m </argument> <argument> -xmx512m </argument> <argument> -jar </argument> <argument> $ {basiert} /lib/allatori.jar </argument> <argument> $ {basiert}/Target/Allatori.xml </ardument> </argument> </! Allatori Plugin End-> </Plugins> </build> <Deponcies> <!-Test begin-> <De vor Ort> <GroupID> junit </Groupid> <artifactid> junit </artifactId> <Scope> Test </Scope> </abhängig> <!-Test End-> <!-Springboot Startup-> <Dielpecy> <Deponcy> <! <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> Mit Maven zum Verpacken von Plug-In wird Spring Boot die Allatori-Konfiguration oben erläutert. Was in der Allatori -Konfiguration wichtiger ist, ist:
<argument> $ {basiert} /lib/allatori.jar </argument> <argument> $ {basiert} /target/allatori.xml </argument> Geben Sie den Alllatori.jar -Dateipfad von Allatori an. Wenn Ihr Projekt ein POM -Projekt ist, können Sie das LIB -Verzeichnis in das übergeordnete Projekt platzieren, und dann benötigt das Kinderprojekt nur:
<Argument> ../ lib/alatori.jar </argument>
Tun Sie es einfach.
Die Allatori.xml -Datei ist ebenfalls sehr wichtig. Schauen Sie sich den Inhalt an:
<config> <eingabe> <jar in = "Confusion-0.0.1-Snapshot.jar" out = "Confusion-0.0.1-Snapshot-Obfuscated value = "log.xml"/> </config>
Das heißt, die spezifische Konfiguration des Allatori Defuscator. Hier können Sie viele Informationen und verschiedene Strategien konfigurieren und auch angeben, welche Klassen nicht verschleiert werden. In der Dokumentation im Anhang am Ende des Artikels können verschiedene spezifische Methoden erhalten werden.
Was hier erklärt werden muss, ist:
<eingabe> <jar in = "Confusion-0.0.1-Snapshot.jar" out = "Confusion-0.0.1-Snapshot-Obfuscated.jar"/> </input>
Confusion-0.0.1-Snapshot.jar ist ein nicht obertiertes Paket nach dem Paket, während Verwirrung-0.0.1-Snapshot-Obfuscated.jar ein verschleiertes Paket ist, was wir brauchen.
Verpackungsschritte
1. Project Clean Maven.
2. Kopieren Sie die folgende Ressourcen von Allatori.xml in das Zielverzeichnis.
3. Installieren Sie das Maven -Projekt, und nachdem Sie die folgenden Informationen gesehen haben, ist dies erfolgreich:
############################################################################################# ##################### zu erhalten ############################################################################################# ##################### zu erhalten Demoversion! ## Nicht für den kommerziellen Gebrauch! ### ## Demo -Version fügt System.outs ## hinzu und geben Sie 'Allatori_Demo' Name ## zu einigen Feldern und Methoden. ## ## ## Verschleierung von Allatori Obfuscator v6.4 Demo ## ## http://www.allatori.com ## ################################################################################################################ ################################################################################################################ ################################################################################################################ #################################################################################################################
4. erfolgreiches Projekt:
Der Pfeil zeigt auf das von uns benötigte Paket, und der Code dieses Pakets wurde verschleiert.
Effektansicht
Hier verwenden wir das Dekompilierungstool, um die verschleierten Pakete anzuzeigen. Ich benutze die JD-GUI-Software, die klein und praktisch ist.
Vor der TestApplication.java Verschleierung:
import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootApplication; @springbootApplicationPublic Class TestApplication {public static void main (String [] Args) {SpringApplication.run (testApplication.clun.run.run.run (testApplication) (testApplication.class, clas). }} Nach dem TestApplication.java verschleiert sich:
importieren java.io.printstream; import org.springframework.boot.springApplication; import org.springframework 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####################################################################################################### ########################################################################################### zu erhalten ######################################################################################################################################### zuichter ######################################################################################### zu erhalten ######################################################################################################################################### zuichter ########################################################################################### zu erhalten ######################################################################################################################################### zuichter Allatori Obfuscator v6.4 Demo #/n # #/n #http://www.allatori.com #/n # #/n#####################################################################################################/n"); SpringApplication.run (TestApplication.Class, a); }} Bevor der Testcontroller.java verwirrt ist:
import org.springframework.web.bind.annotation.getMapping; import org.springFramework.web.bind.annotation }}
Nach dem TestController.java verschleiert sich:
import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic 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 (?); }} Hahaha, wie wäre es damit, verstehst du nicht? Und das Verschleierungspaket wird wie gewohnt ohne Probleme ausgeführt.
--------》 GitHub-Quellcode und Dokumentadresse "-------
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.