Git Product home page Git Product logo

radon's Introduction

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

radon's People

Contributors

itzsomebody avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.