Argument | Meaning | Example |
---|---|---|
-s <arg> --srcfile <arg> |
Required Obfusctaed java Source File (.jar) |
-s obfuscated.jar |
-o <arg> --outputfile <arg> |
Required Deobfuscated (output) file (.jar) |
-o deofuscated.jar |
-m <arg> --mapping <arg> |
Required (Mutually exclusive to patchfiledir , but one is required)Mappingfile |
-m mappings.txt |
-p <arg> --patchfiledir <arg> |
Required (Mutually exclusive to mapping , but one is required)Directory with PatchFiles (.json) |
-p patchfileFolder |
For the rest call --help
- MappingFile
-s
"client.jar"
-o
"deobf_client.jar"
-m
"mappings_client.txt"
-ec
net/minecraft/gametest/
- patchfile directory / json files in a directory
-s
"client.jar"
-o
"deobf_client.jar"
-p
"patchfilesdir_client"
-ec
net/minecraft/gametest/
The program gets the required files:
- the obfuscated and packed .jar
- the mappings
- a single mapping file - provided in proguards txt format
Example: mapping.txt
- a single mapping file - provided in proguards txt format
# comment
test.package.abc -> cve:
20:21:void youJustLostTheGame() -> a
24:24:double getTime() -> b
test.def -> cvf:
org.apache.logging.log4j.Logger LOGGER -> a
int source -> b
java.util.concurrent.atomic.AtomicBoolean initialized -> c
int streamingBufferSize -> d
31:37:int create() -> a
22:42:void <init>(int) -> <init>
45:61:void destroy() -> b
64:65:void play() -> c
int getPixelWidth() -> d
68:71:int getState() -> j
17:17:void <clinit>() -> <clinit>
- json files in a directory
Example: zx.json
{
"Name": "abc.SoundEvent",
"ObfName": "zx",
"Fields": [
{
"Type": "abc.ResourceLocation",
"Name": "location",
"ObfName": "a"
}
],
"Methods": [
{
"Name": "<init>",
"ObfName": "<init>",
"ReturnType": "void",
"Parameters": [
{
"Type": "abc.ResourceLocation"
}
]
},
{
"Name": "getLocation",
"ObfName": "a",
"ReturnType": "abc.ResourceLocation",
"Parameters": []
}
]
}
- The jar is extracted
- The extracted/obfuscated .class(es) are visited, the obfuscated parts are replaced by deobfuscated ones and rewritten
- A new jar is packed from the fixed .class(es)
A deobfuscated jar is created