Skip to content

Commit d4d0135

Browse files
committed
Let's get this party started
1 parent 17a7e12 commit d4d0135

File tree

169 files changed

+50496
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

169 files changed

+50496
-2
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
/target
22
/bin
3+
/src/debug/
34
.classpath
45
.project
5-
6+
/.settings
7+
*.jar

README.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,41 @@
11
# Deobfuscator
22

3-
Soon™
3+
This is an all-in-one Java deobfuscator which will deobfuscate nearly all transformations applied by nearly all obfuscators.
4+
5+
Of course, things like renaming won't be deobfuscated because that is literally impossible. The information is simply not there.
6+
7+
Instead, this deobfuscator can undo transformations such as string encryption, reflection obfuscation, and invokedynamic obfuscation.
8+
9+
There is no command line interface yet. You will have to clone this repo and manually invoke the proper methods.
10+
11+
## Example
12+
13+
```java
14+
public class SomeRandomDeobfuscator {
15+
public static void main(String[] args) throws Throwable {
16+
new Deobfuscator()
17+
.withInput(new File("input.jar"))
18+
.withOutput(new File("output.jar"))
19+
.withClasspath(new File("path/to/rt.jar"))
20+
.withTransformer(Transformers.Generic.SYNTHETIC_BRIDGE)
21+
.start();
22+
}
23+
}
24+
```
25+
26+
## Transformers
27+
28+
Official transformers are linked via the `Transformers` class.
29+
30+
| Transformer | Description |
31+
| --- | --- |
32+
| Allatori.STRING_ENCRYPTION | Decrypts strings encrypted by Allatori |
33+
| DashO.STRING_ENCRYPTION | Decrypts strings encrypted by DashO |
34+
| Stringer.STRING_ENCRYPTION | Decrypts strings encrypted by Stringer |
35+
| Stringer.INVOKEDYNAMIC | Decrypts invokedynamic obfuscated calls by Stringer |
36+
| Stringer.REFLECTION_OBFUSCATION | Decrypts reflection obfuscated calls by Stringer |
37+
| General.SYNTHETIC_BRIDGE | Removes synthetic and bridge modifiers from all methods and fields |
38+
439

540
## Supported Obfuscators
641

pom.xml

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<modelVersion>4.0.0</modelVersion>
3+
<groupId>com.javadeobfuscator</groupId>
4+
<artifactId>deobfuscator</artifactId>
5+
<version>1.0.0</version>
6+
<build>
7+
<sourceDirectory>src/main/java</sourceDirectory>
8+
<resources>
9+
<resource>
10+
<directory>src/main/resources</directory>
11+
</resource>
12+
</resources>
13+
<plugins>
14+
<plugin>
15+
<artifactId>maven-compiler-plugin</artifactId>
16+
<version>3.3</version>
17+
<configuration>
18+
<source>1.8</source>
19+
<target>1.8</target>
20+
<compilerArgs>
21+
<arg>-XDignore.symbol.file</arg>
22+
</compilerArgs>
23+
<fork>true</fork>
24+
</configuration>
25+
</plugin>
26+
<plugin>
27+
<groupId>org.apache.maven.plugins</groupId>
28+
<artifactId>maven-shade-plugin</artifactId>
29+
<version>2.4.2</version>
30+
<executions>
31+
<execution>
32+
<phase>package</phase>
33+
<goals>
34+
<goal>shade</goal>
35+
</goals>
36+
<configuration>
37+
<artifactSet>
38+
<includes>
39+
<include>*:*</include>
40+
</includes>
41+
</artifactSet>
42+
<minimizeJar>true</minimizeJar>
43+
</configuration>
44+
</execution>
45+
</executions>
46+
</plugin>
47+
<plugin>
48+
<groupId>org.apache.maven.plugins</groupId>
49+
<artifactId>maven-jar-plugin</artifactId>
50+
<version>2.4</version>
51+
<configuration>
52+
<archive>
53+
<manifest>
54+
<mainClass>com.javadeobfuscator.deobfuscator.DeobfuscatorMain</mainClass>
55+
</manifest>
56+
</archive>
57+
</configuration>
58+
</plugin>
59+
</plugins>
60+
</build>
61+
62+
<dependencies>
63+
<dependency>
64+
<groupId>commons-cli</groupId>
65+
<artifactId>commons-cli</artifactId>
66+
<version>1.3.1</version>
67+
</dependency>
68+
<dependency>
69+
<groupId>com.google.guava</groupId>
70+
<artifactId>guava</artifactId>
71+
<version>19.0</version>
72+
</dependency>
73+
<dependency>
74+
<groupId>org.jooq</groupId>
75+
<artifactId>jool</artifactId>
76+
<version>0.9.9</version>
77+
</dependency>
78+
</dependencies>
79+
</project>

0 commit comments

Comments
 (0)