Giter VIP home page Giter VIP logo

caesium's Introduction

Caesium

Caesium is a powerful Java bytecode obfuscator written by sim0n for fun, and released for the public.

Image of Caesium UI

Currently available mutators

  • Class Folder (Turns classes into folders)
  • Control Flow
  • Crasher (Will crash almost every GUI based RE tool)
  • Local Variable
  • Line Number
  • Number
  • Polymorph
  • Reference (invokedynamics)
  • String
  • Trim (Currently only trims math functions)

Notes

You have to add every dependency your jar relies on. Caesium is very optimised and the performance loss shouldn't be more than 5-10% (unless you're using reference mutation)

Usage

  • Run the jar.
  • Select mutators in the mutators tab.
  • Hit mutate. Done!

Community

If you want to join the discord for Caesium to talk, ask questions or anything then feel free to join the discord

Special thanks to

yourkit logo

YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor. They support open source projects with their fully featured application profilers. It's used to ensure that this project will be as fast as possible.

caesium's People

Contributors

1582421598 avatar decyferable avatar sim0n avatar xbrowniecodezv2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

caesium's Issues

Section sign "§" breaking messages (Spigot)

So somehow "§" is being used, but in a weird way. For instance it is breaking chat and console messages in Spigot (color codes) with adding new unknown chars. I dont know how it is with other UTF-8 chars.

Version: latest (v1.0.9)
Java: 8

Console:
Screenshot_1

Ingame:
Screenshot_2

Suggestion - Name Obfuscation

Something That obfuscates the name of every file amd class and bury the classes deep inside random folders with random letters and garbage and maybe an option to use Dictionaries, if you do add this, do not forget to add an option to ignore classes like a main class

ClassFormatError In Obfuscated JAR (Using String Literal Mutator)

Whilst not using the string literal mutator, I can create an obfuscated jar that runs as expected. Although, when I enable this mutator (which is essential to the software I am trying to obfuscate) I get a class format error with one of IntelliJ's UI designer classes. I created this app in IntelliJ using their java swing designer and it runs fine on java 8 with no obfuscation. Adding the "forms_rt" redist jar to the dependencies did not help.

-I am using the latest release of Caesium, and JDK 1.8.0_281.
The full error is below:

Exception in thread "main" java.lang.ClassFormatError: Class file version does not support constant tag 15 in class file com/intellij/uiDesigner/core/GridLayoutManager
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

after obfuscate crash

[03:22:27] [Client thread/INFO]: Setting user: 123
Exception in thread "Client thread" [03:22:28] [Client thread/INFO]: [STDERR]: java.lang.ClassFormatError: Truncated class file
[03:22:28] [Client thread/INFO]: [STDERR]: at java.lang.ClassLoader.defineClass1(Native Method)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.lang.ClassLoader.defineClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.security.SecureClassLoader.defineClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.net.URLClassLoader.defineClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.net.URLClassLoader.access$100(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.net.URLClassLoader$1.run(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.net.URLClassLoader$1.run(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.security.AccessController.doPrivileged(Native Method)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.net.URLClassLoader.findClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.lang.ClassLoader.loadClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at java.lang.ClassLoader.loadClass(Unknown Source)
[03:22:28] [Client thread/INFO]: [STDERR]: at aou.w(1446251123:125)
[03:22:28] [Client thread/INFO]: [STDERR]: at ng.c(793911746:1148)
[03:22:28] [Client thread/INFO]: [STDERR]: at bhz.(1146816487:979)
[03:22:28] [Client thread/INFO]: [STDERR]: at net.minecraft.client.main.Main.main(Main.java:115)

Suggestion - Log/Precentage of completion

Something that tells you how much precent its completed so you know when obfuscated jar would be ready, also something that shows the logs on what class it is currently obfuscating

UTF-8

When I ofuscated a spigot plugin, the utf-8 got bugged

Java 11 support

Hello, could you add java 11-14 support? (without disabling reference mutation)

Exclusion List doesn't work

Personally, when I add class paths in the exclusion list, they are still obfuscated.

Example :

me.swartz.something.Main
com.google.gson. *

doesn't work.

BungeeCord support

How to use that for bungeecord plugins ?

My OS is Linux Xubuntu.
I'm getting ClassFileFormatException: Class file version does not support constant tag 15 in class file org/jboss/logging/Logger

Java 17 rt.jar doesn't exists

Hey,

I tried to obfuscate my program which is written in java version 17. However, I noticed that the rt.jar does not exist in higher java versions! I already tried to use the src.zip which is in the lib folder, but it doesn't work.

Could you possibly tell me which file I have to add / use so that it works?

Thanks in advance.

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.