Git Product home page Git Product logo

deobfuscator's Introduction

Deobfuscator Build Status

This project aims to deobfuscate most commercially-available obfuscators for Java.

Update 02/20/18

This project will likely be on pause for the next month or two because my arm is broken

Quick Start

  • Download the deobfuscator.
  • If you know what obfuscators were used, skip the next two steps
  • Create detect.yml with the following contents. Replace input.jar with the name of the input
input: input.jar
detect: true
  • Run java -jar deobfuscator.jar --config detect.yml to determine the obfuscators used
  • Create config.yml with the following contents. Replace input.jar with the name of the input
input: input.jar
output: output.jar
transformers:
  - [fully-qualified-name-of-transformer]
  - [fully-qualified-name-of-transformer]
  - [fully-qualified-name-of-transformer]
  - ... etc
  • Run java -jar deobfuscator.jar
  • Re-run the detection if the JAR was not fully deobfuscated - it's possible to layer obfuscations

Take a look at USAGE.md for more information.

It didn't work

If you're trying to recover the names of classes or methods, tough luck. That information is typically stripped out and there's no way to recover it.

Otherwise, check out this guide on how to implement your own transformer (also, open a issue/PR so I can add support for it)

Supported Obfuscators

Zelix Klassmaster
Stringer
Allatori
DashO
DexGuard
ClassGuard
Smoke
SkidSuite2 (dead, some forks are listed here)

List of Transformers

The automagic detection should be able to recommend the transformers you'll need to use. However, it may not be up to date. If you're familiar with Java reverse engineering, feel free to take a look around and use what you need.

FAQs

I got an error that says "Could not locate a class file"

You need to specify all the JARs that the input file references. You'll almost always need to add rt.jar (which contains all the classes used by the Java Runtime)

I got an error that says "A StackOverflowError occurred during deobfuscation"

Increase your stack size. For example, java -Xss128m -jar deobfuscator.jar

Does this work on Android apps?

Technically, yes, you could use something like dex2jar or enjarify. However, dex -> jar conversion is lossy at best. Try simplify or dex-oracle first. They were written specifically for Android apps.

Licensing

Java Deobfuscator is licensed under the Apache 2.0 license.

deobfuscator's People

Contributors

firemasterk avatar minidigger avatar netindev avatar picknchew avatar samczsun avatar thistestuser avatar

Watchers

 avatar  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.