Введение в технологию запугивания Allatori
Allatori - это Java Obfuscator, который принадлежит к вкускателю второго поколения, поэтому он может защитить ваши права на интеллектуальную собственность во всех аспектах. Allatori имеет следующие методы защиты: именование запутывания, запутывание потока, запутывание информации отладки, запутывание строки и технология водяного знака. Этот прекрасный прекращение образовательных и некоммерческих проектов. Форматы файлов войны и JAR поддерживаются и позволяют добавлять допустимые даты в приложения, которые необходимо запутать код. Есть проекты, которые необходимы для защиты кода. Более основным решением является запутывать код. После разложения упакованного файла вы можете увидеть эффект. Кроме того, размер мешков, изготовленных с Allatori, будет немного меньше.
Введение проекта
Очень обычный проект Maven, разница состоит в том, чтобы добавить пакет JAR Allatori в корневой каталог.
Давайте посмотрим на файл 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> </placin> <!-Allatori Plugin Start-> <blicin> <groupid> org.apache.maven.plugins </GroupId> <ratifactid> maven-resourcess-plugin. <ferainations> <cerfution> <id> Copy-and Filter-allatori-config </id> <phase> пакет </phase> <goot> <goot> copy-resources </okpure> </overt> <poncivuration> <suptureDirectory> $ {basedir}/target </outputDirectory> <sorrandors> <sorrasulity> <wometory> $ {основанный {основанный на Allator allori </outputorectory> <sressurany> <sormetory> $ {warly allator allator </outputdirectory> <sressurny> <-dightory> $. <include>allatori.xml</include> </includes> <filtering>true</filtering> </resources> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <seculation> <id> run-allatori </id> <phase> пакет </phase> <cept> <ogle> exec </gule> </goot> </выполнение> </выполнение> </выполнение> </исполнения> <Конфигурация> <Serviebable> java </recement> <аргумент> <Argent> -xms128m </armerive> <ava> -xmx511111112 гг. <аргумент> $ {basedir} /lib/allatori.jar </argement> <аргумент> $ {basedir} /target/allatori.xml </armery> </arments> </configuration> </placin> <!-Allatori Plugin End-> </plucins> </build> <dependencies> <!-test begin-> <Degy Group> </plucins> </build> <! <artifactId>junit</artifactId> <scope>test</scope> </dependency> <!-- Test End --> <!-- springboot startup --> <dependency> <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> <serse> 1.5.8.release </version> </parent> </project> Используя Maven для упаковки плагина, Spring Boot Builds Конфигурация Allatori также объясняется выше. Что важнее в конфигурации Allatori, так это:
<аргумент> $ {basedir} /lib/allatori.jar </armery> <аргумент> $ {basedir} /target/allatori.xml </armery> Укажите путь файла alllatori.jar в Allatori. Если ваш проект является POM -проектом, вы можете поместить каталог LIB в родительский проект, а затем требуется только дочерний проект:
<аргумент> ../ lib/allatori.jar </armeric>
Просто сделай это.
Файл 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 = "conficing-0.0.1-snapshot.jar" out = "conficing-0.0.1-snapshot-obfuscated.jar"/> </input>
Путаница-0.0.1-snapshot.jar-это неопубликованный пакет за пакетом, в то время как путаница-0.0.1-Snapshot-obfuscated.jar-это запутанный пакет, который нам нужен.
Шаги упаковки
1. Чистый проект Maven.
2. Скопируйте файл allatori.xml ниже ресурсов в целевой каталог.
3. Установите проект Maven, и, увидев следующую информацию, это означает, что он успешно:
#################################################################################################### вместе #################################################################################################### вместе Демо -версия! ## не для коммерческого использования! ### ## Демо -версия добавляет System.out's ## и дает имя allatori_demo '## некоторые поля и методы. ## ## ## obfuscation от Allatori Obfuscator v6.4 Демонстрация ## ## http://www.allatori.com ## ################################################################################################################ ################################################################################################################ ################################################################################################################ #################################################################################################################
4. Успешный проект:
Стрелка указывает на необходимый нам пакет, и код этого пакета был запутан.
Эффект представления
Здесь мы используем инструмент декомпиляции для просмотра запутанных пакетов. Я использую программное обеспечение JD-Gui, которое является небольшим и практичным.
Перед тестированием. Ява запутывает:
Импорт org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication; @springbootapplicationpublic class testapplication {public static void main (string [] args) {SpringApplication.run (testapplication. Class); }} После TestApplication.java запутывается:
Импорт java.io.printstream; import org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication; @springbootapplicationpublic classapplication {public Static Allatorixo (String a) {int tmp4 {{public strice allatorixo (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)); } вернуть новую строку (?); } public static void main (string [] a) { System.out.println("/n####################################################################################################### ################################################# вместе ################################################# вместе ################################################# вместе ################################################# вместе ################################################# вместе ################################################# вместе Allatori Obfuscator v6.4 Демо #/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;@RestControllerpublic class TestController { @GetMapping("/test") public String test(){ return "888888888888888"; }} После TestController.java запутывается:
Импорт org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bindtation.restcontroller; @RestControllerPublic Class TestController {@getMapping ({"/test"}) 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)); } вернуть новую строку (?); }} Хахаха, как насчет этого, не понимаешь? И пакет запутывания работает как обычно без проблем.
--------》 GitHub исходный код и адрес документа "-------
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.