Skip to content

ThisTestUser/Radon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Radon Java Obfuscator

Lightweight Java obfuscator by ItzSomebody. He tried to include as much attribution as possible, so if he missed you just open a pull-request and he will approve it because unlike some, he actually credits my sources (jk lol but I'll still credit sources).

Licenses get to go with the manifest in src/META-INF (yay!)

Usage: java -jar Radon.jar --config exampleconfig.yml

Alternatively, you can also use java -jar Radon.jar --help for help.

Example config:

Input: ClearChat.jar
Output: ClearChat-OBF.jar
StringEncryption: Light
InvokeDynamic: Normal
FlowObfuscation: Normal
LocalVariableObfuscation: Remove
LineNumberObfuscation: Remove
SourceNameObfuscation: Obfuscate
HideCode: True
Crasher: True
StringPool: True
NumberObfuscation: True
TrashClasses: 50
Renamer: True
WatermarkType: ConstantPool
WatermarkMessage: ItzSomebody
WatermarkKey: PASSWORD
ExpiryTime: 1/18/2018
ExpiryMessage: "YOUR SOFTWARE TRIAL HAS ENDED!!! YOU MUST NOW PAY $100000000 FOR THE FULL VERSION LULZ"
Libraries:
    - "C:/Program Files/Java/jdk1.8.0_131/jre/lib/rt.jar"
Exempt:
    - "me/itzsomebody/clearchat/ClearChat"
    - "me/itzsomebody/clearchat/config/Config"

Valid config options you can use:

Option Expected Value(s) Desc
Input String Input file to obfuscate
Output String Output file to dump result of obfuscation
Libraries String List Libraries used to compile the input
Exempts String List Exempted classes, methods, or fields from obfuscation
StringEncryption String (Light/Normal) Type of string encryption to apply
FlowObfuscation String (Light/Normal) Type of flow obfuscation to apply
InvokeDynamic String (Light/Normal) Type of invokedynamic obfuscation to apply
LocalVariableObfuscation String (Obfuscate/Remove) Type of local variable obfuscation to apply
Crasher Boolean Determines if the decompiler crasher should be applied
HideCode Boolean Determines if synthetic modifiers should be applied
StringPool Boolean Determines if strings should be pooled
LineNumberObfuscation String (Obfuscate/Remove) Type of line number obfuscation to apply
NumberObfuscation Boolean Determines if integers should be split into simple math expressions
SourceNameObfuscation String (Obfuscate/Remove) Type of source name obfuscation to apply
TrashClasses Integer Number of trash classes to generate
WatermarkMessage String Message to watermark into the output
WatermarkType String (ConstantPool/Signature) Type of watermark to apply
WatermarkKey String Key used to encrypt watermarks
SpigotPlugin String Determines if input should be treated as a spigot/bungee plugin
Renamer Boolean Determines if obfuscator should rename classes and methods
ExpiryTime String Determines if obfuscator insert expiry obfuscation (useful for trialware)
ExpiryMessage String Message to show when set your trialware goes past expiration date (rip)

Credits

  • OW2 ASM - Refactored as me/itzsomebody/radon/asm.
  • SnakeYaml - Refactored as me/itzsomebody/radon/yaml.
  • LordPancake - Maker of SkidSuite
  • samczsun - Author of Java-Deobfuscator and the 20 (or so) ways to crash the various decompilers which is no longer open-source.
  • VincBreaker - Author of Smoke obfuscator which I stole some stuff from xD.
  • Coolman - I stole his Zip-writing algorithm xD.
  • WindowBuilder by Eclipse - Used to make GUI (yes I know it's Java Swing, I didn't feel like remaking it in JavaFX)
  • Licel - Makers of Stringer Java Obfuscator.
  • Allatori Dev Team - Makers of Allatori Java Obfuscator.
  • Caleb Whiting - Author of Java ASM Obfuscator.

License

GNU General Public License v3.0

About

Radon Java Obfuscator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%