Skip to content

Commit

Permalink
August Update
Browse files Browse the repository at this point in the history
  • Loading branch information
ThisTestUser committed Aug 8, 2020
1 parent 127947a commit d31a135
Show file tree
Hide file tree
Showing 14 changed files with 4,326 additions and 5 deletions.
6 changes: 4 additions & 2 deletions README.md
@@ -1,4 +1,4 @@
# Deobfuscator [![Build Status](https://ci.samczsun.com/buildStatus/icon?job=java-deobfuscator/Deobfuscator)](https://ci.samczsun.com/job/java-deobfuscator/job/Deobfuscator)
# Deobfuscator

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

Expand Down Expand Up @@ -36,6 +36,8 @@ Take a look at [USAGE.md](USAGE.md) for more information.

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.

If you are using one of our transformers, check out the commonerrors folder to check for tips.

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

## Supported Obfuscators
Expand Down Expand Up @@ -70,4 +72,4 @@ They were written specifically for Android apps.

## Licensing

Java Deobfuscator is licensed under the Apache 2.0 license.
Java Deobfuscator is licensed under the Apache 2.0 license.
2 changes: 2 additions & 0 deletions commonerrors/Allatori.md
@@ -0,0 +1,2 @@
## Flow Obfuscation
The latest versions of Allatori contain some flow obfuscation which moves around some instructions, so it is necessary to run allatori.FlowObfuscationTransformer to fix this. This transformer should always work, but if it doesn't, open an issue! Note: It is not necessary to run this before allatori.StringEncryptionTransformer.
2 changes: 2 additions & 0 deletions commonerrors/AntiReleak.md
@@ -0,0 +1,2 @@
## InvokeDynamic Transformer
This transformer was made to be a universal decryptor for all antireleak invokedynamics. This will only reverse the invokedynamics so you can reverse engineer the plugin, not remove all traces of your user id!
2 changes: 2 additions & 0 deletions commonerrors/DashO.md
@@ -0,0 +1,2 @@
## String Encryption Transformer
If you get an error relating to SourceResult, it is because DashO's flow obfuscation was applied, which messes with the string decryptor. Run dasho.FlowObfuscationTransformer first, and you will able to decrypt all the strings.
1 change: 1 addition & 0 deletions commonerrors/General.md
@@ -0,0 +1 @@
In general, files must be deobfuscated in the reverse order in which obfuscators were applied. For example, if your file is obfuscated with Stringer and then Allatori, you would run the Allatori transformers, and then the Stringer ones. Also, if an obfuscator was applied multiple times (e.g. several layers of Allatori), you must run the transformers multiple times. The only exception with this rule is with flow obfuscation transformers, which typically do not need to be run multiple times.
2 changes: 2 additions & 0 deletions commonerrors/JObf.md
@@ -0,0 +1,2 @@
## JObfTransformer (superblaubeere27's obfuscator)
One issue with this obfuscator is that it may inject local variables into the code, which prevents the file from being completely deobfuscated. In that case, use general.LocalVariableRemover, write to file, and then run the deobfuscator on the output. If you are still having issues with some features not being deobfuscated, use DeadCodeRemover and then RedundantGotoRemover to get rid of the junk code that may be in the way. Note that there are some settings which you cannot configure in this transformer without forking this project.
2 changes: 2 additions & 0 deletions commonerrors/Radon.md
@@ -0,0 +1,2 @@
## RadonTransformer(V2)
RadonTransformer was meant to work on the earlier versions of Radon, while RadonTransformerV2 works on the later versions. Use RadonTransformer first, and if it doesn't work, use RadonTransformerV2. Note that there are some settings in the transformer that you cannot configure without forking the project.
2 changes: 2 additions & 0 deletions commonerrors/Stringer.md
@@ -0,0 +1,2 @@
## HideAccessObfuscation Transformer
If you see an error while running the transformer, it means that you did not remove the string encryption. Run stringer.StringEncryptionTransformer first and you will be able decrypt Stringer's hide access. Note that you need to add all libraries that are used by the JAR, otherwise you will not be able to decrypt the file!
8 changes: 5 additions & 3 deletions docs/index.md
@@ -1,9 +1,9 @@
# Deobfuscator [![Build Status](https://ci.samczsun.com/buildStatus/icon?job=java-deobfuscator/Deobfuscator)](https://ci.samczsun.com/job/java-deobfuscator/job/Deobfuscator)
# Deobfuscator

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

## Updates
To download an updated version of Java Deobfuscator, go to the [releases tab on the GitHub repo](https://github.com/java-deobfuscator/deobfuscator/releases).
To download an updated version of Java Deobfuscator, go to the releases tab.

If you would like to run this program with a GUI, go to https://github.com/java-deobfuscator/deobfuscator-gui and grab a download. Put the deobfuscator-gui.jar in the same folder as deobfuscator.jar.

Expand Down Expand Up @@ -36,6 +36,8 @@ Take a look at [USAGE.md](USAGE.md) for more information.

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.

If you are using one of our transformers, check out the commonerrors folder to check for tips.

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

## Supported Obfuscators
Expand Down Expand Up @@ -70,4 +72,4 @@ They were written specifically for Android apps.

## Licensing

Java Deobfuscator is licensed under the Apache 2.0 license.
Java Deobfuscator is licensed under the Apache 2.0 license.

0 comments on commit d31a135

Please sign in to comment.