
Ofusca el código fuente de Java para protegerlo contra la ingeniería inversa, la descompilación y el robo de propiedad intelectual. Renombra variables/métodos, cifra cadenas y ofusca el flujo de control.
JObfuscator es un ofuscador de código fuente para el lenguaje de programación Java. Puede proteger su código fuente Java y sus algoritmos contra hackeos, cracking, ingeniería inversa, descompilación y robo de tecnología.
JObfuscator emplea una variedad de técnicas de ofuscación para proteger y ocultar la verdadera funcionalidad de su código fuente Java.
Renombra todas las variables y métodos, ofusca el flujo del código haciéndolo no lineal y cifra todas las cadenas con nuestro motor de cifrado de cadenas polimórfico de vanguardia.
Más detalles técnicos, descargas y documentación disponibles en:
https://www.pelock.com/products/jobfuscator

Está disponible para Windows y Linux (requiere Mono):
https://www.pelock.com/products/jobfuscator/download
Múltiples API de programación disponibles:
https://www.pelock.com/products/jobfuscator/api
Una interfaz de ofuscación en línea:
https://www.pelock.com/jobfuscator/
Las aplicaciones escritas en Java y compiladas a formatos JAR, WAR o CLASS son vulnerables a la descompilación.
Existen varios descompiladores que pueden recrear casi por completo el código compilado de vuelta a código fuente Java.
El problema es que el código Java compilado está escrito como un llamado bytecode para la JVM (a diferencia del código nativo de CPU como x86 o x86-64).
Además de estar perfectamente documentado, esta forma de código permite una reproducción muy precisa de las instrucciones originales en código fuente Java de alto nivel.
Eche un vistazo a este ejemplo:

¡Este es código Java descompilado! Todos los nombres de variables, propiedades y métodos son legibles. Incluso puede navegar fácilmente por todo el proyecto descompilado, saltando de una clase a otra.
¿Está sorprendido? Podría ser su software analizado por la competencia, hackers, crackers o cualquier otra persona.
¿Qué podrían hacer con él? La mayoría de las veces, el software o sus algoritmos son robados o replicados en productos de la competencia.
En otros casos, el software es crackeado, los controles de licencia claramente visibles en el código fuente descompilado son parcheados o incluso todo el software crackeado se recompila y se publica en sitios piratas.
La ofuscación es el proceso de transformar el código fuente Java en una versión protegida de sí mismo.
La funcionalidad permanece sin cambios, todo funciona igual, pero el código fuente y el bytecode final compilado están protegidos contra el análisis de ingeniería inversa, incluso después de la descompilación.
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);
}
}
### El mismo código fuente de Java después de la ofuscación```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 {