JObfuscator 是一款面向 Java 编程语言的源代码混淆器。它可以保护您的 Java 源代码和算法免受黑客攻击、破解、逆向工程、反编译以及技术窃取。
JObfuscator 采用多种混淆技术来保护并隐藏您 Java 源代码的真实功能。
它会重命名所有变量和方法,通过使代码流非线性化来混淆代码执行流程,并使用我们尖端的多态字符串加密引擎对所有字符串进行加密。
更多技术细节、下载及文档,请访问:
https://www.pelock.com/products/jobfuscator

支持 Windows 和 Linux(需 Mono):
https://www.pelock.com/products/jobfuscator/download
提供多种编程 API:
https://www.pelock.com/products/jobfuscator/api
在线混淆器界面:
https://www.pelock.com/jobfuscator/
使用 Java 编写并编译为 JAR、WAR 或 CLASS 格式的应用程序极易受到反编译攻击。
有许多反编译器几乎可以将编译后的代码完整还原为 Java 源代码。
问题在于,编译后的 Java 代码是以所谓的字节码形式编写的,供 JVM 执行(与 x86 或 x86-64 等原生 CPU 代码不同)。
除了拥有完善的文档之外,这种代码形式还允许非常精确地将原始指令还原为高级 Java 源代码。
看看这个例子:

这是反编译后的 Java 代码!所有变量、属性和方法名称都清晰可读。您甚至可以轻松浏览整个反编译项目,从一个类跳转到另一个类。
您感到惊讶吗?这可能是您的软件被竞争对手、黑客、破解者或任何其他人分析后的结果。
他们会用它做什么?大多数情况下,软件或其算法会被窃取或复制到竞争产品中。
在其他一些情况下,软件会被破解,反编译源代码中清晰可见的许可证检查会被修补,甚至整个被破解的软件会被重新编译并发布到盗版网站上。
混淆是将 Java 源代码转换为受保护版本的过程。
功能保持不变,一切照常运行,但源代码和最终编译的字节码都受到保护,即使经过反编译也无法进行逆向工程分析。
import java.util.; import java.lang.; import java.io.*;
// // you must include a custom annotation // to enable the entire class or a single // method obfuscation // @Obfuscate class Ideone { //@Obfuscate public static double calculateSD(double numArray[]) { double sum = 0.0, standardDeviation = 0.0; int length = numArray.length;
for(double num : numArray) {
sum += num;
}
double mean = sum/length;
for(double num: numArray) {
standardDeviation += Math.pow(num - mean, 2);
}
return Math.sqrt(standardDeviation/length);
}
//
// selective obfuscation strategies
// can be applied for the entire
// class or a single method (by
// default all obfuscation strategies
// are enabled when you use @Obfuscate
// annotation alone)
//
//@Obfuscate(
// array_int_crypt = true,
// array_char_crypt = true,
// array_double_crypt = true,
// array_string_crypt = true,
// split_strings = true,
// crypt_strings = true,
// rename_methods = false,
// shuffle_methods = true,
// ints_math_crypt = true,
// dbls_math_crypt = true,
// rename_variables = true,
// mix_code_flow = true,
// string_char_vault = true,
// ints_from_double_math = true,
// opaque_mixer_chain = true,
// complexify_booleans = true,
// try_finally_noise = true,
// ints_to_arrays = true,
// dbls_to_arrays = true
// )
public static void main(String[] args) {
double[] numArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
double SD = calculateSD(numArray);
System.out.format("Standard Deviation = %.6f", SD);
}
}
### 混淆后的相同 Java 源代码```java
////////////////////////////////////////////////////////////////////////////////
//
// An output from JObfuscator v1.30 - Bartosz Wójcik
//
// Website : https://www.pelock.com/products/jobfuscator
// Version : v1.30
// Params : /MixCodeFlow /RenMethods /RenVars /ShuffleMethods /ArrayIntCrypt
// /ArrayDoubleCrypt /ArrayCharCrypt /ArrayStringCrypt
// /IntsMathCrypt /DblsMathCrypt /StringSplit /CryptStr
// /StringCharVault /IntsFromDoubleMath /OpaqueMixerChain
// /ComplexifyBooleans /TryFinallyNoise /IntsToArray /DblsToArray
// New lines : Windows (CRLF - \r\n)
// Date : 12.05.2026
//
////////////////////////////////////////////////////////////////////////////////
import java.util.*;
import java.lang.*;
import java.io.*;
import java.lang.Math.*;
class Ideone {