JObfuscator version history

JObfuscator version history with changes and bugfixes to the Java obfuscation engine, Windows client versions and WebAPI interface.

Engine history

v1.30 - 14.05.2026

  • A new obfuscation strategy. Encrypt all double values using floating point math functions from the java.lang.Math.* class.
  • A new obfuscation strategy. Rebuild string literals as runtime-created String objects from hidden char arrays.
  • A new obfuscation strategy. Represent selected integer values through equivalent double math expressions.
  • A new obfuscation strategy. Inject opaque mixer chains and unreachable guards to increase the amount of code decompilers have to analyze.
  • A new obfuscation strategy. Replace plain true and false literals with equivalent runtime expressions.
  • A new obfuscation strategy. Wrap selected safe statements in noisy try/finally blocks while preserving program behavior.
  • A new obfuscation strategy. Encrypt int array contents and decode them at runtime.
  • A new obfuscation strategy. Encrypt double arrays by hiding their values as encoded bit patterns.
  • A new obfuscation strategy. Encrypt char arrays and restore the original characters through generated decoder code.
  • A new obfuscation strategy. Encrypt String array elements and rebuild them while the program runs.
  • A new obfuscation strategy. Split eligible string literals into nested .concat(...) chains so decompilers face more tokens and local data-flow steps; it runs before polymorphic string encryption when both are enabled.
  • Updated the StringEncrypt engine with support for nested polymorphic loops in string encryption.
  • Updated the engine parser configuration to support Java 21 source code constructs.

v1.20 - 09.08.2022

  • Added support for nested classes
  • Recognize @Obfuscate annotation for the nested classes in an outer class
  • Fixed method shuffling within classes with nested subclasses

v1.10 - 09.08.2022

  • Fixed an error in the order of variable declarations when using obfuscation to change the linear path of code execution (thank you Yi Wu)
  • Automatically adding special annotation for IntelliJ IDE @SuppressWarnings(InstanceVariableMayNotBeInitialized) for the non-linear code path obfuscation

v1.09 - 06.02.2022

  • Fixed bug in annotation handling that caused string encryption obfuscation to work incorrectly

v1.08 - 19.10.2021

  • Fixed renaming methods within the same class

v1.07 - 17.08.2021

  • Improved integer to arrays obfuscation by generating multidimensional arrays e.g. int[][] var_3035 = { { 65535 }, { 01, 02, 0b0 } };
  • Improved doubles to arrays obfuscation by generating multidimensional arrays e.g. double[][][] O_ZzBf7_4tcNvh_c = { { { 2.8 } }, { { 1.3 } }, { { 0.06, 3.7, 65535.8 } } };

v1.06 - 16.08.2021

  • Improved non-linear code obfuscation by adding more randomness in it, e.g. random type of loops while(...) {} or do {} while(...) {}

v1.05 - 14.08.2021

  • Fix NaN numbers in integers encryption obfuscation
  • All generated integer type values are now randomly written in decimal, hexadecimal, binary or octal system e.g. int[] mSjhhzs = { 010, 0x01BA7, 0x51, 1521, 0b1100 };

v1.04 - 05.08.2021

  • A new obfuscation strategy. Encrypt all integer values using more than 15 floating point math functions from the java.lang.Math.* class.
  • A new obfuscation strategy. For each method, extract all possible double values from the code and store them in an array.
  • Avoid renaming methods annotated with @Override keyword
  • String encryption obfuscation by default is using now more encryption instructions
  • Multi-pass execution for the integer and double extraction into arrays

v1.03 - 31.07.2021

  • Some integers were not extracted correctly for the integers to arrays obfuscation strategy
  • Multilevel obfuscation of extracted integers into the arrays (into a random number of double and integer arrays)

v1.02 - 30.07.2021

  • An integers to arrays obfuscation strategy, converts the integer values into double values to avoid deobfuscation by popular Java decompilers e.g. double[] var_2597 = new double[]{13.898355719807563D, 65535.73657403742D, ... };

v1.01 - 28.07.2021

  • A new obfuscation strategy. For each method, extract all possible integers from the code and store them in an array. It makes the analysis harder because it requires an indexed table lookup for every numeric value.

v1.0 - 25.07.2021

  • Initial release under the code name "Rome wasn't built in a day"
  • Change linear code execution flow to nonlinear version
  • Rename variable names to random string values
  • Rename method names to random string values
  • Shuffle order of methods in the output source
  • Encrypt strings using randomly generated polymorphic encryption algorithms

Client history

v1.3 - 14.05.2026

  • Windows and Linux clients updated with all the new obfuscation strategies
  • Windows client runs the obfuscation process in background now
  • Drag & drop support added for faster Java file opening
  • Command line version supports wildcards now and can process many files at once
  • All the SDK packages updated

Web API SDKs - April 2026

v1.1

  • Prices down -10 USD for all the plans
  • Increased connection timeout
  • Fixed connection problem to the licensing server
  • Software binaries and installers are no longer digitally signed, it doesn't provide any value to the software and has no other function than drain money out of my pocket year by year by the greedy code signing certification companies

v1.04 - 05.08.2021

  • All clients (Windows, Linux) and SDKs (PHP & Python) updated to include the new obfuscation strategies /IntsMathCrypt & /DblsToArrays

v1.01 - 28.07.2021

  • All clients (Windows, Linux) and SDKs (PHP & Python) updated to include the new obfuscation strategy /IntsToArrays

v1.0 - 25.07.2021

JObfuscator v1.0 main window
  • Initial release
  • Windows client
  • Command line version compatible with Windows and Linux (Mono)
  • WebAPI client with PHP usage examples

Any questions?

If you would like to ask me about JObfuscator, or something's not clear, mail me. I'll be happy to answer all of your questions.