GithubHelp home page GithubHelp logo

lucabongiorni / deobfuscator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from java-deobfuscator/deobfuscator

0.0 1.0 0.0 807 KB

Home Page: https://javadeobfuscator.com

License: Apache License 2.0

Java 97.03% HTML 1.07% Jasmin 1.90%

deobfuscator's Introduction

Deobfuscator

Build Status

This is an all-in-one Java deobfuscator which will deobfuscate code obfuscated by most obfuscators available on the market.

What can the deobfuscator do?

The deobfuscator supports deobfuscation of transformations such as string literal encryption, or reflection obfuscation. These transformations have been hard coded for a specific obfuscator, but generic deobfuscators are also available.

What can't the deobfuscator do?

Things like method names, class names, etc cannot be deobfuscated because there renaming is irreversible. The information needed to deobfuscate is removed.

Examples

As a library

public class SomeRandomDeobfuscator {
    public static void main(String[] args) throws Throwable {
        new Deobfuscator()
            .withInput(new File("input.jar"))
            .withOutput(new File("output.jar"))
            .withClasspath(new File("path/to/rt.jar"))
            .withTransformer(Transformers.Generic.SYNTHETIC_BRIDGE)
            .start();
    }
}

CLI

If you don't want to import the project, you can always use the command line interface. There are four arguments that are taken.

Argument Description
-input The JAR to deobfuscate
-output The file to write to
-transformer A canonical name of the transformer class
-path A dependency of the JAR being deobfuscated

You may specify multiple transformers, and they will be applied in the order given. Order does matter as sometimes one transformation depends on another not being present.

If you wish to use one of the default transformers, then you may remove the com.javadeobfuscator.deobfuscator.transformers prefix. For example, the command below will do the same as the example above.

java -jar deobfuscator.jar -input input.jar -output output.jar -transformer general.SyntheticBridgeTransformer -path path/to/rt.jar

Transformers

Official transformers are linked via the Transformers class.

Transformer Canonical Name Description
Allatori.STRING_ENCRYPTION allatori.StringEncryptionTransformer Decrypts strings encrypted by Allatori
DashO.STRING_ENCRYPTION dasho.StringEncryptionTransformer Decrypts strings encrypted by DashO
Stringer.STRING_ENCRYPTION stringer.StringEncryptionTransformer Decrypts strings encrypted by Stringer
Stringer.INVOKEDYNAMIC stringer.InvokedynamicTransformer Decrypts invokedynamic obfuscated calls by Stringer
Stringer.REFLECTION_OBFUSCATION stringer.ReflectionObfuscationTransformer Decrypts reflection obfuscated calls by Stringer
Zelix.STRING_ENCRYPTION zelix.StringEncryptionTransformer Decrypts strings encrypted by Zelix
Zelix.REFLECTION_OBFUSCATION zelix.ReflectionObfuscationTransformer Decrypts reflection obfuscated calls by Zelix
General.SYNTHETIC_BRIDGE general.SyntheticBridgeTransformer Removes synthetic and bridge modifiers from all methods and fields
General.PEEPHOLE_OPTIMIZER general.peephole.PeepholeOptimizer Optimizes the code
Normalizer.CLASS_NORMALIZER normalizer.ClassNormalizer Renames all classes to Class
Normalizer.METHOD_NORMALIZER normalizer.MethodNormalizer Renames all methods to Method
Normalizer.FIELD_NORMALIZER normalizer.FieldNormalizer Renames all fields to Field

Downloads

The latest build can be downloaded from my CI Server

Supported Obfuscators

Zelix Klassmaster
Stringer
Allatori
DashO
DexGuard
Generic obfuscation

Licensing

Java Deobfuscator is licensed under the Apache 2.0 license.

deobfuscator's People

Contributors

samczsun avatar

Watchers

 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.