Zelix KlassMastertm Java 混淆器 可以保護您的Java碼,並防止編輯和逆向工程。其先進的模糊處理和字串加密技術,讓您的Java碼擁有高度的保護。而Zelix KlassMaster的名稱混淆技術,透過減少Java封包、分類、方法和字串,優化其大小。其修剪功能可刪除未使用的bytecode分類、字串和方法。Zelix KlassMaster的Java混淆器除了其先進的功能外,也很容易使用。它具有:
- 一種名為ZKM Script的強大腳本語言,
- 獨特的AutoReflection™技術,允許自動處理Zelix KlassMaster™無法完全解析的任何Java Reflection API調用,
- Smart Save™技術,自動更新JAR清單和XML文件,
- 增量混淆技術,確保跨版本一致地混淆Java物件名稱,
- GUI Stack Trace Translate工具,使解讀混淆後的Java堆棧跟踪變得輕而易舉。
更新介紹
- Provides support for Java 22.
- Enhances the ZKM Script obfuscate statement by introducing the makeClassesPublic parameter which optionally make all classes public and not final.
- Provides preliminary support for the String Templates functionality previewed again in Java 22.
- Other minor changes and bug fixes.
Java字串混淆器功能
Java字串混淆器改變Java字串後,可以保護原始碼,並減少使用逆向工程的駭客和競爭對手。 Zelix KlassMaster Java字串模糊處理器,自1997年發布以來不斷發展,以保持在模糊技術的先鋒地位。
先進的Java字串保護
Zelix KlassMaster提供第二代模糊處理技術,其獨特的加密技術加入Java字節碼保護。其擁有第一代的Zelix KlassMaster全方位的混亂處理技術,再加上擁有高度保護的Java字節碼混淆器,因此Zelix KlassMaster在本領域是無與倫比的
Java字串尺寸極小化
Zelix KlassMaster的名稱混淆功能,可以減少封包、分類字串和方法的大小。 Zelix KlassMaster的修剪功能,進一步自動刪除未曾使用的分類、字串和方法,以減少字串的大小。
功能強大且易於使用
Zelix KlassMaster提供易於使用的用戶界面,簡化初學者的學習時間。功能強大且直觀的ZKM腳本,使您可以自動模糊處理在您所構建的週期。Zelix KlassMaster還提供了一個工具界面,讓您可以執行ZKM腳本的Apache Ant構建工具。
Advanced Java bytecode protection
In addition to its excellent first generation Name Obfuscation functionality, Zelix KlassMaster™ provides the following added Java bytecode protection:
- Second generation Flow Obfuscation technology.
- Innovative String Encryption technology. (We invented it.)
- Robust Reference Obfuscation technology which allows you to selectively obscure field accesses or method calls.
- Unique Method Parameter Changing technology which dramatically hardens our String Encryption and Reference Obfuscation functionality against being reversed.
- An additional, enhanced, third generation Flow Obfuscation technology based upon the Method Parameter Changing functionality that can be used with or instead of our classic Flow Obfuscation.
- Innovative Method Parameter Obfuscation technology which allows you obscure method parameter lists. (Again we invented it.)
- Unique Exception Obfuscation technology.
It is Zelix KlassMaster's comprehensive Flow Obfuscation, String Encryption and Reference Obfuscation technologies that made it the first, true second generation, heavy duty Java obfuscator. It is still unmatched.
Maximized Java bytecode size reduction
As well as protecting your Java bytecode from being decompiled to comprehensible source code, Zelix KlassMaster's Name Obfuscation functionality reduces your bytecode size by reducing the size of your package, class, field and method names. Zelix KlassMaster's Trim functionality further reduces your bytecode size by removing unused classes, fields and methods.
Powerful but easy to use
Zelix KlassMaster™ provides a number of interfaces. Its easy to use GUI interface eases the learning curve for new starters. However, it is the powerful yet intuitive ZKM Script language interface that allows you to automate the obfuscation process and integrate it into your build cycle. Zelix KlassMaster™ also provides a Build Tool Interface to allow you to execute ZKM Scripts from within a build tool such as Apache Ant.
Zelix KlassMaster's unique AutoReflection™ technology solves the Java Reflection API call problem by automatically handling complicated Java Reflection API calls. This can dramatically reduce the amount of work that you have to do if you are obfuscating classes containing complex or obscure Reflection API calls.
Zelix KlassMaster's Smart Save™ technology makes the Java obfuscation process easier by simplifying the handling of JAR, resource and Enterprise Java Beans deployment descriptor files. Zelix KlassMaster's default name exclusions provide automatic support for Serialization, RMI & JavaBeans and support for Java ME & JEE applications. Also, it supports Incremental Obfuscation by ensuring consistent renaming of objects and consistent flow obfuscation across your releases.
Finally, Zelix KlassMaster™ helps you debug your beta releases with its unique Line Number Scrambling technology. This technology allows you to determine real line numbers from stack traces reported by your beta test customers without reducing the level of your code protection. It can save your developers weeks of guess work. Zelix KlassMaster™ also provides the GUI Stack Trace Translate tool to make deciphering obfuscated stack traces effortless.
What do you need to run Zelix KlassMaster™?
Zelix KlassMaster™ is written entirely in Java 8 (i.e. JDK 1.8) and technically should run on any platform that supports a Java 8 or better Virtual Machine. However, note that Zelix KlassMaster™ version 10 or better requires a recent version of a Java 8 JVM or better to run. If you use an Oracle JVM earlier than 1.8.0_152 then you may get a JVM crash due to HotSpot bugs. Also note that Zelix KlassMaster™ version 22 currently may not run successfully on older versions (e.g. pre-Aug 2020) of the Eclipse OpenJ9 JVM due to a JVM bug.
More generally, differences in the file systems and GUIs can also cause problems. Further, Zelix KlassMaster's flow obfuscation technology can expose bugs in some Just in Time (JIT) compilers.
Zelix KlassMaster™ has been tested on:
- Windows 11™ 64bit using
- java version "1.8.0_401" Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
- openjdk version "1.8.0_402" OpenJDK 64-Bit Server VM (Temurin)(build 25.402-b06, mixed mode)
- java version "11.0.22" 2024-01-16 LTS Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.22+9-LTS-219, mixed mode)
- openjdk version "11.0.22" 2024-01-16 OpenJDK 64-Bit Server VM Temurin-11.0.22+7 (build 11.0.22+7, mixed mode)
- openjdk version "17.0.10" 2024-01-16 OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode)
- openjdk version "21.0.2" 2024-01-16 LTS OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode)
- java version "21.0.2" 2024-01-16 LTS Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing)
- openjdk version "22" 2024-03-19 OpenJDK 64-Bit Server VM (build 22+36-2370, mixed mode, sharing)
- IBM Semeru Runtime Open Edition (build 1.8.0_402-b06) Eclipse OpenJ9 VM (build openj9-0.43.0, JRE 1.8.0x86-32-Bit 20240131_847 (JIT enabled, AOT enabled)
- IBM Semeru Runtime Open Edition (build 11.0.22+7) Eclipse OpenJ9 VM 11.0.22.0 (build openj9-0.43.0, amd64-64-Bit 20240131_835 (JIT enabled, AOT enabled)
- IBM Semeru Runtime Open Edition 17.0.10.0 (build 17.0.10+7) Eclipse OpenJ9 VM 17.0.10.0 (build openj9-0.43.0, amd64-64-Bit 20240116_624 (JIT enabled, AOT enabled)
- IBM Semeru Runtime Open Edition 21.0.2.0 (build 21.0.2+13-LTS) Eclipse OpenJ9 VM 21.0.2.0 (build openj9-0.43.0, amd64-64-Bit 20240116_95 (JIT enabled, AOT enabled)
- Linux (Xubuntu 22.04) using
- java version "1.8.0_401" Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
- java version "11.0.22" 2024-01-16 LTS Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.22+9-LTS-219, mixed mode)
- java version "17.0.10" 2024-01-16 LTS Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing))
- java version "21.0.2" 2024-01-16 LTS Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing)
- openjdk version "22" 2024-03-19 OpenJDK 64-Bit Server VM (build 22+36-2370, mixed mode, sharing)
- IBM Semeru Runtime Open Edition 17.0.10.0 (build 17.0.10+7) Eclipse OpenJ9 VM 17.0.10.0 (build openj9-0.43.0,amd64-64-Bit 20240116_670 (JIT enabled, AOT enabled)
- IBM Semeru Runtime Open Edition 21.0.2.0 (build 21.0.2+13-LTS Eclipse OpenJ9 VM 21.0.2.0 (build openj9-0.43.0, amd64-64-Bit 20240116_94 (JIT enabled, AOT enabled)
What can Zelix KlassMaster™ process?
Zelix KlassMaster™ can process bytecode compiled for Java 9 through to 22 including modules.
Of course, it can also process bytecode compiled for JDK 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.0, 1.6.0, 1.7.0 and 1.8.0 JVMs. However, it is highly recommended that you always set the internal classpath used by Zelix KlassMaster™ (i.e. the ZKM Script classpath statement) to point to the bootstrap classes corresponding to the classes you are obfuscating. For Java 2 through to Java 8 that is the corresponding rt.jar. For Java 9 to Java 21 it is the corresponding lib\jrt-fs.jar file system.
Note that if you use the Reference Obfuscation functionality on bytecode which is at the Java 8 level then your obfuscated bytecode will require a newer Java 8 or better JVM to run. For example, if you use an Oracle JVM earlier than 1.8.0_152 then you may get a JVM crash due to HotSpot bugs.