Skip to content

Col-E/CAFED00D

Repository files navigation

CAFEDOOD

Another class library with a focus on obfuscation support.

Features

Usage

Add dependency

Add CafeDude dependency (where VERSION is the latest version)

<dependency>
    <groupId>software.coley</groupId>
    <artifactId>cafedude-core</artifactId>
    <version>VERSION</version>
</dependency>
implementation 'software.coley:cafedude-core:VERSION'

Reading and writing classes

The default settings have anti-obfuscation measures enabled.

// Reading
byte[] code = ...
ClassFileReader cr = new ClassFileReader();
// cr.setDropForwardVersioned(false) - enabled by default
// cr.setDropEofAttributes(false) - enabled by default
// cr.setDropDupeAnnotations(false) - enabled by default
ClassFile cf = cr.read(code);
// Writing
code = new ClassFileWriter().write(cf);

Stripping reserved hotspot instructions from classes

If you encounter a class using reserved hotspot instructions create subclass of ClassFileReader which provides IllegalRewritingInstructionsReader.

An example of this can be found in CrasherPatchingTest.java

Stripping malformed attributes and data from classes

Additional items can be removed via:

// Modifies the 'cf' instance
new IllegalStrippingTransformer(cf).transform();

About

Obfuscation resilent Java class reader/writer

Resources

License

Stars

Watchers

Forks

Contributors 11

Languages