Protect your Kotlin source code from decompilation and reverse engineering. String encryption, control flow obfuscation, and symbol renaming for JVM and Android applications.
Kotlin compiles to JVM bytecode, which means the same decompilers that read Java read your Kotlin too, often reconstructing clean, idiomatic source. R8 and ProGuard rename and shrink at the bytecode stage, but renaming alone leaves your logic and strings recoverable.
Joker obfuscates Kotlin at the source level before compilation: string literals encrypted, control flow restructured, and classes, functions, and properties renamed. It runs before your APK or JAR is built, so it layers cleanly on top of R8 for defense in depth rather than competing with it.
All string literals encrypted with unique keys. Decompilers see encrypted blobs, not your strings.
Code logic restructured into complex patterns that resist decompilation and analysis.
Obfuscate Kotlin source before compilation. Works alongside R8/ProGuard for defense in depth.
Classes, functions, and properties renamed to unreadable identifiers.
Source-level obfuscation as a layer on top of bytecode shrinking.
| Typical tools | Joker | |
|---|---|---|
| Stage | Bytecode, post-compile | Source, pre-compile |
| Strings | Often plaintext | Encrypted |
| Control flow | Preserved | Restructured |
| Works with R8 | n/a | Yes, stacks for defense in depth |
| Multiplatform | Varies | Any target, per-file |
Drag and drop your file into the dashboard or use our Discord bot.
Select light, medium, or heavy protection based on your needs.
Get your obfuscated file with unique VM encryption. Ready to deploy.
ProGuard/R8 work at bytecode level after compilation. We work at source level before compilation, adding string encryption and control flow changes that ProGuard can't.
Yes. Obfuscate your Kotlin source files before building your APK for an additional layer of protection beyond R8.
Yes. Individual .kt files can be obfuscated regardless of the target platform.