Before it ships
Your jar is rewritten until a decompiler has nothing useful to show.
- Renaming
- Classes, methods and fields lose every meaningful name.
- String and constant encryption
- URLs, messages and numbers are decrypted only at runtime.
- Control-flow obfuscation
- Logic is flattened into state machines decompilers cannot rebuild.
- Reference hiding
- Calls and field access go through indirection, reflection included.
- Native compilation
- Chosen methods become C++ in a JNI library for Windows, Linux and macOS, x64 and arm64.
- Custom VM
- Protected code runs inside a bespoke virtual machine with mixed boolean arithmetic.