Pengantar Teknologi Kebingungan Allatori
Allatori adalah Java Obfuscator, yang termasuk Obfuscator generasi kedua, sehingga dapat melindungi hak kekayaan intelektual Anda dalam semua aspek. Allatori memiliki metode perlindungan berikut: penamaan kebingungan, pengayaan aliran, pengayaan informasi debug, kebingungan string, dan teknologi watermarking. Obfuscator ini gratis untuk proyek pendidikan dan non-komersial. Format File War dan JAR didukung dan memungkinkan untuk menambahkan tanggal yang valid ke aplikasi yang perlu mengaburkan kode. Ada proyek yang perlu melindungi kode. Solusi yang lebih mendasar adalah mengaburkan kode. Setelah mendekompilasi file yang dikemas, Anda dapat melihat efeknya. Selain itu, ukuran tas yang dibuat dengan Allatori akan sedikit lebih kecil.
Pendahuluan Proyek
Proyek Maven yang sangat biasa, perbedaannya adalah menambahkan paket JAR Allatori di direktori root.
Mari kita lihat file 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.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <nodelversion> 4.0.0 </perodversion> <groupid> com.lovnx </groupid> <t Artifactid> Confusion </arttifactid> <version> </Versi 0.0.1-Snapshot </Version> </Artifacping </Versi 0.0.1-snapshot </Version </Version </artifacping> </Versi 0.0.1-Snapshot </Version </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi </Versi 0. <GroupId> org.springframework.boot </proupid> <ArtifactId> spring-boot-maven-plugin </arttifactid> </lugin> <!-plugin allatori start-> <t plugin> <roupid> org.apache.maven.plugins </groupid> <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> <recrectory> $ {berbasis}/allatorI </cirectory> <clert> <certed> allatorI.xml </cert> </cert> <filtering> true </filtering> </source> </source> </configuration> </execution> </executions> </plugin> <mengergroek> <groupid> </execution> </executions> </lugin> <lugin> <groupid> org.codeSha.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.mous.moUs. <ArtifactId> exec-maven-plugin </stifactid> <version> 1.2.1 </version> <sekutif> <Execution> <dr run-alallatori </den> <phase> paket </phase> <jetik> <it/eksekutif </sekutasi> </Execution> </Execution> </Execution> </Executionse> </Execution> </Execution> </Execution> </Execution> </Executionse> </Execution> </Execution> </Execution> </Execution> </EXECUCUSE </EPEKUSION> </EXECURASE </EXECUTRED </EXECUCUSI <Argument> -xms128m </sgrument> <Argument> -xmx512m </gremument> <grumument> -jar </gremument> <bument> $ {berbasis} /lib/allatori.jar </argument> <Aggument> $ {berbasis}/target/allatori.xml <argument> <argument> </argumen </argument </argument </argumen </argument </argumen </argument </argument </argumen </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument </argument/{{} End Plugin AllatorI-> </plugins> </build> <dependencies> <!-Test Begin-> <dependency> <Groupid> Junit </groupid> <Artifactid> Junit </artifactid> <scope> test </scope> </dependency> <!-end end-> <!-Springboot startup-</scope> </dependency> <! <groupid> org.springframework.boot </sroupid> <ArtifactId> Spring-boot-starter-web </t Artifactid> </dependency> </dependencies> <enttent> <groupid> org.springframework.boot </groupid> <Artifactid> Spring-Boots-Parter-Parent. </darent> </poject> Menggunakan Maven untuk mengemas plug-in, Spring Boot Membangun Konfigurasi AllatorI juga dijelaskan di atas. Yang lebih penting dalam konfigurasi allatorI adalah:
<Argument> $ {berbasis} /lib/allatori.jar </gremument> <Argument> $ {berbasis} /target/allatori.xml </sgrument> Tentukan jalur file alllatori.jar dari allatorI. Jika proyek Anda adalah proyek POM, Anda dapat menempatkan direktori lib di proyek induk, dan kemudian proyek anak hanya membutuhkan:
<Argument> ../ lib/allatori.jar </sgrument>
Lakukan saja.
File allatori.xml juga sangat penting, lihatlah isinya:
<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 = "Dilindungi+"/> <Keep-names> " name = "Log-File" value = "log.xml"/> </config>
Artinya, konfigurasi spesifik dari Obfuscator AllatorI. Di sini Anda dapat mengonfigurasi banyak informasi dan berbagai strategi, dan Anda juga dapat menentukan kelas mana yang tidak dikaburkan. Berbagai metode spesifik dapat diperoleh dalam dokumentasi dalam lampiran di akhir artikel.
Apa yang perlu dijelaskan di sini adalah:
<Input> <Jar in = "Confusion-0.0.1-snapshot.jar" out = "Confusion-0.0.1-Snapshot-Obfuscated.jar"/> </input>
Confusion-0.0.1-Snapshot.jar adalah paket setelah paket yang tidak terobati, sedangkan Confusion-0.0.1-Snapshot-terobsikan.jar adalah paket yang dikalahkan, yang kita butuhkan.
Langkah Pengemasan
1. Proyek Maven Bersih.
2. Salin file allatorI.xml di bawah sumber daya ke direktori target.
3. Instal Proyek Maven, dan setelah melihat informasi berikut, itu berarti berhasil:
############################################################### ############################################################### Versi demo! ## Tidak untuk penggunaan komersial! Versi demo ### ## Menambahkan System.out's ## dan berikan nama 'allatori_demo' ## ke beberapa bidang dan metode. ## ## ## obfuscation oleh allatori obfuscator v6.4 demo ## ## http://www.allatori.com ## ###################################################### ###################################################### ###################################################### #######################################################
4. Proyek Sukses:
Panah menunjuk ke paket yang kita butuhkan, dan kode paket ini telah dikaburkan.
Tampilan efek
Di sini kami menggunakan alat dekompilasi untuk melihat paket yang dikalahkan. Saya menggunakan perangkat lunak JD-GUI, yang kecil dan praktis.
Sebelum TestApplication.java Kebingungan:
Impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; @springbootApplicationPlic Public TestApplication {public static void main (string [] args) {springapplication.run.run.run.run.run.run (tes public static (string [] args) {springapplication.run.run.run.run.run.run.run (string) {springapplication.run.run.run.run.run.run.run }} Setelah TestApplication.java dikalahkan:
import java.io.PrintStream;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic 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 = char baru [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)); } mengembalikan string baru (?); } public static void main (string [] a) { System.out.println ("/n ############################################ ###########################################################. ############################################################. ###########################################################. ############################################################. ###########################################################. ############################################################. AllatorI Obfuscator v6.4 Demo #/N # #/N #http://www.allatori.com #/n # #/n ########################################################## Springapplication.run (testApplication.class, a); }} Sebelum testController.java bingung:
impor org.springframework.web.bind.annotation.getmapping; impor org.springframework.web.bind.annotation.restcontroller; @restControllerPublic class testController {@getMapping ("/test") public string test () {88888888888888888888888888888888888888888888888888 }} Setelah testController.java dikalahkan:
Impor org.springframework.web.bind.annotation.getMapping; impor org.springframework.web.bind.annotation.restController; @RestControllerPublic TestController {@getMapping ({"/test"}) uji public () {@getMapping ({"/test") {@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 = char baru [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)); } mengembalikan string baru (?); }} Hahaha, bagaimana dengan itu, tidakkah kamu mengerti? Dan paket kebingungan berjalan seperti biasa tanpa masalah.
--------》 Kode Sumber GitHub dan Alamat Dokumen "-------
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.