java-deobfuscator / deobfuscator Goto Github PK
View Code? Open in Web Editor NEWThe real deal
Home Page: https://javadeobfuscator.com
License: Apache License 2.0
The real deal
Home Page: https://javadeobfuscator.com
License: Apache License 2.0
c.g.gson.i.LinkedTreeMap.find:175
c.g.gson.i.LinkedTreeMap.put:94
JsonObject.add:57
JsonTreeWriter.put:79
JsonTreeWriter.value:187
TypeAdapter$7.write:254
TypeAdapter$7.write:239
TypeAdapterRuntimeWrapper.write:68
ReflectiveTypeAdapterFactory$1.write:112
ReflectiveTypeAdapterFactory$Adapter.write:239
The last three are repeated many times. Tried with -Xss512M
.
I printed out the class before I called toString to see which it was.
Deobfuscation failed. Please open a ticket on GitHub
java.lang.NullPointerException
at com.javadeobfuscator.deobfuscator.transformers.zelix.StringEncryptionTransformer.lambda$transform$249(StringEncryptionTransformer.java:89)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.zelix.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:57)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Could this even work at all? In https://github.com/java-deobfuscator/deobfuscator/blob/master/src/main/java/com/javadeobfuscator/deobfuscator/transformers/zelix/StringEncryptionTransformer.java#L78 the while
is left due to next == null
, so calling next.getNext()
in https://github.com/java-deobfuscator/deobfuscator/blob/master/src/main/java/com/javadeobfuscator/deobfuscator/transformers/zelix/StringEncryptionTransformer.java#L89 fails.
This isn't really an issue.. but by any chance do you have an updated version of Stringer?
If a class of a library is referenced is ignored by the package normalizer and it just renames the package reference.
This happens only if a package or a part of a package is named identically in a library and the file to deobfuscate. Things still have to be done on a per-class basis.
Transformer: zelix.ReflectionObfuscationTransformer
Deobfuscation failed. Please open a ticket on GitHub
com.javadeobfuscator.deobfuscator.executor.exceptions.NoSuchComparisonHandlerException: No comparator found for java/lang/String
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:865)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:79)
at com.javadeobfuscator.deobfuscator.executor.defined.MappedMethodProvider.invokeMethod(MappedMethodProvider.java:53)
at com.javadeobfuscator.deobfuscator.executor.providers.DelegatingProvider.invokeMethod(DelegatingProvider.java:32)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:764)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:79)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer.lambda$null$275(ReflectionObfuscationTransformer.java:160)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer$$Lambda$76/965674262.accept(Unknown Source)
at java.util.ArrayList.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer.lambda$inlineReflection$276(ReflectionObfuscationTransformer.java:116)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer$$Lambda$75/1318395825.accept(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer.inlineReflection(ReflectionObfuscationTransformer.java:115)
at com.javadeobfuscator.deobfuscator.transformers.zelix.ReflectionObfuscationTransformer.transform(ReflectionObfuscationTransformer.java:63)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Since the deobfuscator tries to deobfuscate every single class regardless of whether it is loaded by the application, one can insert a dummy class that implements "some/random/Thing", and the deobfuscator will fail on the class and not deobfuscate the rest of the jar.
Note about using for example -Xss128M
to be able to go on with deobfuscation. The execute methods are sometimes called too often recursively for the stack size.
http://pastebin.com/kEhfmwUT
Using lastet build (24)
Is it needed? Useful?
I got this error while attempting to deobfuscate, don't really know what is causing it, i think the classes have some checks against modifications?
java.lang.IllegalArgumentException: Invalid access flags: 56 at com.javadeobfuscator.deobfuscator.org.objectweb.asm.util.CheckClassAdapter.checkAccess(CheckClassAdapter.java:599) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.util.CheckClassAdapter.visit(CheckClassAdapter.java:377) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.accept(ClassReader.java:622) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.accept(ClassReader.java:506) at com.javadeobfuscator.deobfuscator.Deobfuscator.toByteArray(Deobfuscator.java:322) at com.javadeobfuscator.deobfuscator.Deobfuscator.lambda$start$5(Deobfuscator.java:179) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.forEach(Unknown Source) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:177) at Main.main(Main.java:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
I got onto some bytecode today that randomly had some LabelNode
s, leading to the issue that one ldc-pop structure was not removed by the PeepholeOptimizer (the POP
was added by me with my just-created DupPop2Replacer
through the iterator of InsnList
).
Just as a note - there was also no jump to that particular LabelNode.
I'm getting this error message when trying to deobfuscate something:
com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: java/lang/Object at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197) at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:230) at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
I've tried multiple transformers, none of them worked.
I am running OpenJDK 8 on Ubuntu 16.04.
everytime when I try to use that tranformer i get an error.
C:\Users\My-PC>java -jar deobfuscator.jar -input "C:\Users\My-PC\Plugin-deobfuscatedv6.jar" -output "C:\Users\My-PC\AlmostFinalv7.jar" -transformer general.peephole.PeepholeOptimizer -path "C:\Program Files\Java\jre1.8.0_77\lib\rt.jar" -path "C:\Users\My-PC\Desktop\Coding\a test server\spigot.jar" -path "C:\Users\My-PC\Deobfuscator\ProtocolLib.jar"
Warning! Output file already exists
Reading complete. Loading hierachy
Transforming
Rearranged 17 goto blocks
Removed 0 continous gotos
Removed 0 unconditional switches
Error while removing dead code from com/Plugin/ClassManager/Abilities/Class88 ALLATORIxDEMO()[I
Deobfuscation failed. Please open a ticket on GitHub
java.lang.StackOverflowError
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:993)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1001)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.execute(MethodAnalyzer.java:1015)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.analyze(MethodAnalyzer.java:267)
at com.javadeobfuscator.deobfuscator.analyzer.MethodAnalyzer.analyze(MethodAnalyzer.java:221)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$null$2(DeadCodeRemover.java:42)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$transform$3(DeadCodeRemover.java:40)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.transform(DeadCodeRemover.java:39)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.PeepholeOptimizer.transform(PeepholeOptimizer.java:45)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
I get this error when I try to decrypt:
Reading complete. Transforming
Deobfuscation failed. Please open a ticket on GitHub
java.lang.NullPointerException
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$null$246(StringEncryptionTransformer.java:61)
at java.util.ArrayList.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$transform$247(StringEncryptionTransformer.java:49)
at java.util.HashMap$Values.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:48)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:162)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Error while deobfuscating a jar -
[Stringer] [StringEncryptionTransformer] Starting
[Stringer] [StringEncryptionTransformer] Found 2186 encrypted strings
Deobfuscation failed. Please open a ticket on GitHub
java.lang.NullPointerException
at java.lang.reflect.Array.get(Native Method)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.executeArrayLoad(MethodExecutor.java:101)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:426)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:80)
at com.javadeobfuscator.deobfuscator.transformers.stringer.StringEncryptionTransformer.decrypt(StringEncryptionTransformer.java:204)
at com.javadeobfuscator.deobfuscator.transformers.stringer.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:61)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
https://www.dropbox.com/s/bs2cq59lngje1jj/stringerx1.jar?dl=0
Here's the link to the file if you need it
I dont know how to do this can someone help me?
C:\Users\User\Desktop\deob>java -jar deob.jar -input input.jar -output output.jar -transformer allatori.StringEncryptionTransformer -path "C:\Program Files\Java\jre1.8.0_91\lib\rt.jar"
Warning! Output file already exists
Reading complete. Loading hierachy
Could not locate a class file.
Have you added the necessary files to the -path argument?
The error was:
com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: com/google/common/base/Function
at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:240)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
C:\Users\User\Desktop\deob>java -jar deob.jar -input input.jar -output output.jar -transformer stringer.StringEncryptionTransformer -path "C:\Program Files\Java\jre1.8.0_91\lib\rt.jar" "C:\Program Files\Java\jre1.8.0_91\lib\jce.jar"
Warning! Output file already exists
Reading complete. Loading hierachy
Could not locate a class file.
Have you added the necessary files to the -path argument?
The error was:
com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: com/google/common/base/Function
at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:240)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Here are different setting combinations of DashO's string encryption.
What currently is checked:
Some things to account for:
Example:
final int n = 14 * 12;
final int n2 = 4;
this.setTitle(Type.subSequence((n + (n2 + (n2 + n2))) / (14 << 2), 11, "[xwmBv9 !'?{ie"));
final int n3 = 5 << 2;
final int n4 = 2;
final int n5 = n3 + (n4 + n4);
final int n6 = 5;
final String subSequence = Type.subSequence(n5 / (n6 + n6), 52, ";s;n;5L6f)l+>e8){9}}+)--\u0004w.pdq?swz,h6lz|t.m36h4r > \u0000{*,`\tz\"f+)mmJ~;k8o%sJ>{+8o\u0011r*>/,ek\u001e@\n;\u000bfd(m:wo&l97}!9\u001df&;oe3g\u001df&{/\u0011r*~olek^\u0000J;\u000bf$hm:w/f,97=ay\u0017K\u0000-k\fg5r!d8\bp=to.m#x#|o/b/i");
this.d.setToolTipText(subSequence);
Samples: DashO String Encryption Samples.zip
It says: Deobfuscation failed, please open a ticket on Github
What can i do?
Transformer: general.peephole.PeepholeOptimizer
Deobfuscation failed. Please open a ticket on GitHub
java.lang.UnsupportedOperationException
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.execute(DeadCodeRemover.java:797)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.execute(DeadCodeRemover.java:241)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$null$49(DeadCodeRemover.java:85)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover$$Lambda$28/729214165.accept(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$transform$50(DeadCodeRemover.java:46)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover$$Lambda$26/1207755460.accept(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.transform(DeadCodeRemover.java:45)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.PeepholeOptimizer.transform(PeepholeOptimizer.java:38)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Error: javax/crypto/BadPaddingException could not be found while writing a$df. Using COMPUTE_MAXS
Hello, I have been trying to use with the command below but it didn't work.
C:\Users\sniffer\Desktop>java -jar deobfuscator-1.0.0.jar -input "e2413e6df124e4
d319df8a869de2a8c936d907016d7f41424fe9f97d5c9b8049(jar).jar" -output output.jar
-transformer allatori.StringEncryptionTransformer -path "C:\Program Files\Java\j
re1.8.0_101\lib\rt.jar"
Reading complete. Loading hierachy
Transforming
Deobfuscation failed. Please open a ticket on GitHub
java.lang.ClassCastException: com.javadeobfuscator.deobfuscator.org.objectweb.as
m.tree.InsnNode cannot be cast to com.javadeobfuscator.deobfuscator.org.objectwe
b.asm.tree.LdcInsnNode
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncrypt
ionTransformer.lambda$null$1(StringEncryptionTransformer.java:72)
at java.util.ArrayList.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncrypt
ionTransformer.lambda$transform$2(StringEncryptionTransformer.java:61)
at java.util.HashMap$Values.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncrypt
ionTransformer.transform(StringEncryptionTransformer.java:60)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.jav
a:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMa
in.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorM
ain.java:26)
Today I have come across some obfuscate texts (Allatori) that have not been deobfuscated. I don't know why. I let them here, maybe can help to improve the strings deobfuscate.
Best regards.
I tried to deobfuscate allatori but that's the result 👍
`C:\Users\x0r\Desktop>java -jar deob.jar -input andro.jar -output fanis.jar -transformer allatori.StringEncryptionTransformer
Reading complete. Loading hierachy
Deobfuscation failed. Please open a ticket on GitHub
com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: javax/swing/JFrame
at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:230)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)`
maybe because i haven't set the -path ? if yes , could you explain me which file should i put in the -path ? i don't understand very well ! sorry i'm korean.
The Jar File Using Allori Demo :
https://mega.nz/#!PVpyhAoR!3qn4AvPs4eW6r2DmjA2LGbby-8YsNgwmDVxbmq8Qayw
Error while decrypting Allatori string.
Are you sure you're deobfuscating something obfuscated by Allatori?
com.javadeobfuscator.deobfuscator.executor.exceptions.NoSuchMethodHandlerException: Could not find invoker for a$hC ALLATORIxDEMO(Ljava/lang/String;)Ljava/lang/String;
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:1165)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:80)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$null$1(StringEncryptionTransformer.java:66)
at java.util.ArrayList.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$transform$2(StringEncryptionTransformer.java:51)
at java.util.HashMap$Values.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:50)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Deobfuscation failed. Please open a ticket on GitHub
java.lang.NullPointerException
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$null$1(StringEncryptionTransformer.java:63)
at java.util.ArrayList.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.lambda$transform$2(StringEncryptionTransformer.java:51)
at java.util.HashMap$Values.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.transformers.allatori.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:50)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Hi again, how are you? Well, I'm try to deobfucate a jar onfuscate with Allatori.
First, run the allatori command to do it and everything is OK. Now, I go to Enigma Decompiler to see the code and I realize that use / Synthetic / so I run the second command to remove this, again, everything is ok.
Well, now, when I go to see the code and with only one class the decompiler crashes and say this:
java.lang.IllegalArgumentException: bad position: 58
at javax.swing.text.JTextComponent.setCaretPosition(JTextComponent.java:1629)
at cuchaz.enigma.gui.CodeReader.navigateToToken(CodeReader.java:160)
at cuchaz.enigma.gui.Gui.showToken(Gui.java:740)
at cuchaz.enigma.gui.Gui.showTokens(Gui.java:756)
at cuchaz.enigma.gui.GuiController.showReference(GuiController.java:280)
at cuchaz.enigma.gui.GuiController.openReference(GuiController.java:269)
at cuchaz.enigma.gui.GuiController.openDeclaration(GuiController.java:250)
at cuchaz.enigma.gui.Gui.navigateTo(Gui.java:908)
at cuchaz.enigma.gui.Gui.access$0(Gui.java:900)
at cuchaz.enigma.gui.Gui$2.onSelectClass(Gui.java:170)
at cuchaz.enigma.gui.ClassSelector$3.mouseClicked(ClassSelector.java:92)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6538)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
So, I extract the source and the conflict class have this within:
public class ClassName
{
public static void ClassName(final String a1) {
//
// This method could not be decompiled.
//
// Original Bytecode:
//
// 0: aconst_null
// 1: astore_1
// 2: new Ljava/io/FileOutputStream;
// 5: dup
// 6: ldc "csolver.properties"
// 8: invokespecial java/io/FileOutputStream.<init>:(Ljava/lang/String;)V
// 11: astore_1
// 12: aload_0 /* a1 */
// 13: aload_1
// 14: aconst_null
// 15: invokevirtual java/util/Properties.store:(Ljava/io/OutputStream;Ljava/lang/String;)V
// 18: aload_1
// 19: ifnull 75
// 22: aload_1
// 23: invokevirtual java/io/OutputStream.close:()V
// 26: return
// 27: athrow
// 28: astore_2
// 29: aload_2
// 30: invokevirtual java/io/IOException.printStackTrace:()V
// 33: return
// 34: athrow
// 35: astore_2
// 36: aload_2
// 37: invokevirtual java/io/IOException.printStackTrace:()V
// 40: aload_1
// 41: ifnull 75
// 44: aload_1
// 45: invokevirtual java/io/OutputStream.close:()V
// 48: return
// 49: astore_2
// 50: aload_2
// 51: invokevirtual java/io/IOException.printStackTrace:()V
// 54: return
// 55: astore_3
// 56: aload_1
// 57: ifnull 73
// 60: aload_1
// 61: invokevirtual java/io/OutputStream.close:()V
// 64: aload_3
// 65: goto 74
// 68: astore_1
// 69: aload_1
// 70: invokevirtual java/io/IOException.printStackTrace:()V
// 73: aload_3
// 74: athrow
// 75: return
// LocalVariableTable:
// Start Length Slot Name Signature
// ----- ------ ---- ---- ----------------------
// 0 76 0 a1 Ljava/util/Properties;
// Exceptions:
// Try Handler
// Start End Start End Type
// ----- ----- ----- ----- ---------------------
// 22 26 28 34 Ljava/io/IOException;
// 2 18 35 55 Ljava/io/IOException;
// 44 48 49 55 Ljava/io/IOException;
// 2 18 55 75 Any
// 35 40 55 75 Any
// 60 64 68 73 Ljava/io/IOException;
// 55 56 55 75 Any
//
// The error that occurred was:
//
// java.lang.IllegalStateException: Inconsistent stack size at #0074 (coming from #0065).
// at com.strobel.decompiler.ast.AstBuilder.performStackAnalysis(AstBuilder.java:2182)
// at com.strobel.decompiler.ast.AstBuilder.build(AstBuilder.java:109)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:210)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:757)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:655)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:532)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:499)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:141)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:130)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:105)
// at cuchaz.enigma.Deobfuscator.getSourceTree(Deobfuscator.java:224)
// at cuchaz.enigma.Deobfuscator.writeSources(Deobfuscator.java:306)
// at cuchaz.enigma.gui.GuiController$1.run(GuiController.java:110)
// at cuchaz.enigma.gui.ProgressDialog$1.run(ProgressDialog.java:98)
//
throw new IllegalStateException("An error occurred while decompiling this method.");
}
public static Properties IiIiIiiiiiii() {
//
// This method could not be decompiled.
//
// Original Bytecode:
//
// 0: new Ljava/util/Properties;
// 3: dup
// 4: invokespecial java/util/Properties.<init>:()V
// 7: astore_0
// 8: aconst_null
// 9: astore_1
// 10: ldc "csolver.properties"
// 12: astore_2
// 13: new Ljava/io/FileInputStream;
// 16: dup
// 17: aload_2
// 18: invokespecial java/io/FileInputStream.<init>:(Ljava/lang/String;)V
// 21: dup
// 22: astore_1
// 23: ifnonnull 75
// 26: aconst_null
// 27: astore_3
// 28: aload_1
// 29: ifnull 46
// 32: aload_1
// 33: invokevirtual java/io/InputStream.close:()V
// 36: aload_3
// 37: areturn
// 38: athrow
// 39: astore 4
// 41: aload 4
// 43: invokevirtual java/io/IOException.printStackTrace:()V
// 46: aload_3
// 47: areturn
// 48: nop
// 49: nop
// 50: nop
// 51: athrow
// 52: astore_3
// 53: aconst_null
// 54: astore 4
// 56: aload_1
// 57: ifnull 72
// 60: aload_1
// 61: invokevirtual java/io/InputStream.close:()V
// 64: aload 4
// 66: areturn
// 67: astore_3
// 68: aload_3
// 69: invokevirtual java/io/IOException.printStackTrace:()V
// 72: aload 4
// 74: areturn
// 75: aload_0
// 76: aload_1
// 77: invokevirtual java/util/Properties.load:(Ljava/io/InputStream;)V
// 80: aload_1
// 81: ifnull 142
// 84: aload_1
// 85: invokevirtual java/io/InputStream.close:()V
// 88: aload_0
// 89: areturn
// 90: astore_2
// 91: aload_0
// 92: aload_2
// 93: invokevirtual java/io/IOException.printStackTrace:()V
// 96: areturn
// 97: astore_2
// 98: aload_2
// 99: invokevirtual java/io/IOException.printStackTrace:()V
// 102: aload_1
// 103: ifnull 142
// 106: aload_1
// 107: invokevirtual java/io/InputStream.close:()V
// 110: aload_0
// 111: areturn
// 112: astore_2
// 113: aload_0
// 114: aload_2
// 115: invokevirtual java/io/IOException.printStackTrace:()V
// 118: areturn
// 119: astore 5
// 121: aload_1
// 122: ifnull 139
// 125: aload_1
// 126: invokevirtual java/io/InputStream.close:()V
// 129: aload 5
// 131: goto 141
// 134: astore_1
// 135: aload_1
// 136: invokevirtual java/io/IOException.printStackTrace:()V
// 139: aload 5
// 141: athrow
// 142: aload_0
// 143: areturn
// Exceptions:
// Try Handler
// Start End Start End Type
// ----- ----- ----- ----- ---------------------
// 32 36 39 46 Ljava/io/IOException;
// 13 28 52 75 Ljava/lang/Exception;
// 60 64 67 72 Ljava/io/IOException;
// 84 88 90 97 Ljava/io/IOException;
// 10 28 97 119 Ljava/io/IOException;
// 52 56 97 119 Ljava/io/IOException;
// 75 80 97 119 Ljava/io/IOException;
// 106 110 112 119 Ljava/io/IOException;
// 10 28 119 142 Any
// 52 56 119 142 Any
// 75 80 119 142 Any
// 97 102 119 142 Any
// 125 129 134 139 Ljava/io/IOException;
// 119 121 119 142 Any
//
// The error that occurred was:
//
// java.lang.IllegalStateException: Inconsistent stack size at #0141 (coming from #0131).
// at com.strobel.decompiler.ast.AstBuilder.performStackAnalysis(AstBuilder.java:2182)
// at com.strobel.decompiler.ast.AstBuilder.build(AstBuilder.java:109)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:210)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:757)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:655)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:532)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:499)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:141)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:130)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:105)
// at cuchaz.enigma.Deobfuscator.getSourceTree(Deobfuscator.java:224)
// at cuchaz.enigma.Deobfuscator.writeSources(Deobfuscator.java:306)
// at cuchaz.enigma.gui.GuiController$1.run(GuiController.java:110)
// at cuchaz.enigma.gui.ProgressDialog$1.run(ProgressDialog.java:98)
//
throw new IllegalStateException("An error occurred while decompiling this method.");
}
}
I hope you can see what is wrong here and fix the problem.... the problem is only with one class as I said.
While deobfuscating stringer with your program, I found an error, which as follows ------
[Stringer] [StringEncryptionTransformer] Starting
[Stringer] [StringEncryptionTransformer] Found 6342 encrypted strings
Deobfuscation failed. Please open a ticket on GitHub
com.javadeobfuscator.deobfuscator.executor.exceptions.NoSuchMethodHandlerException: Could not find invoker for java/lang/reflect/Method hashCode()I
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:1060)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:80)
at com.javadeobfuscator.deobfuscator.executor.defined.MappedMethodProvider.invokeMethod(MappedMethodProvider.java:53)
at com.javadeobfuscator.deobfuscator.executor.providers.DelegatingProvider.invokeMethod(DelegatingProvider.java:33)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:1131)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:80)
at com.javadeobfuscator.deobfuscator.executor.defined.MappedMethodProvider.invokeMethod(MappedMethodProvider.java:53)
at com.javadeobfuscator.deobfuscator.executor.providers.DelegatingProvider.invokeMethod(DelegatingProvider.java:33)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:1131)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:80)
at com.javadeobfuscator.deobfuscator.transformers.stringer.StringEncryptionTransformer.decrypt(StringEncryptionTransformer.java:203)
at com.javadeobfuscator.deobfuscator.transformers.stringer.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:61)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:170)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
(Newest version of stringer, I have a dl if you want it)
Obfuscation can be based on some methods or even classes full of methods whose purpose is to handle and return unobfuscated values. It would be nice if certain methods or classes can be specified to get inlined.
This would be a wider approach than current string obfuscation handling which could handle multiple obfuscators.
Example jar: https://www.spigotmc.org/resources/anothercheat-anti-cheat.24323/
java.lang.IllegalArgumentException: Invalid class name (must be a fully qualified class name in internal form): /ç?´ç??人ç?´ç??ç??ç??/è¦?ç?´/ç?´ç??è¦
?/ä¸?/人ä¸?ç??ç?´/ä¸?/ç?´ç??ç?¼äººç?¼/ç?¼/人/è¦?è¦?ä¸?人ç?¼ç??ç??ç?´äººç?¼/ç?´è¦?/è¦?ç?¼ä¸?人/ç??ç?¼è¦?/ç??/ç?¼ä¸?ç?´ä¸?ç?¼ä¸?/ç??ç??ç??人è¦?/é??
ç?´ç?´ç?´ç?¼ç??è¦?é??ç?´ä¸?ç??é??ä¸?ç??è§?人ç??é??人ç?´ç??è¦?è§?ç??人人人è§?ç??ç??人ä¸?人è¦?ç?¼ç??è§?è¦?è§?ç??ç??ç?¼ç??ç??ç??ç?¼ç??ç?´ç??人é??
人ç??ç??ç??ç??人ç?¼ç??è§?人ç??ç?´ç?¼ç??è¦?ä¸?é??ç?´äººç?´ç??è¦?ç??ä¸?ç??è¦?ç??ç?´ç??HA
at com.javadeobfuscator.deobfuscator.org.objectweb.asm.util.CheckMethodAdapter.checkInternalName(CheckMethodAdapter.java:1351)
at com.javadeobfuscator.deobfuscator.org.objectweb.asm.util.CheckMethodAdapter.checkInternalName(CheckMethodAdapter.java:1318)
at com.javadeobfuscator.deobfuscator.org.objectweb.asm.util.CheckClassAdapter.visit(CheckClassAdapter.java:383)
at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.accept(ClassReader.java:622)
at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
at com.javadeobfuscator.deobfuscator.Deobfuscator.toByteArray(Deobfuscator.java:322)
at com.javadeobfuscator.deobfuscator.Deobfuscator.lambda$start$5(Deobfuscator.java:179)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:177)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
It might be really useful if some basic renaming capabilities could be implemented. Then it should also output what has been renamed exactly.
Method renaming - rename ambiguous methods by for example appending the return type to the method name
Class renaming - rename classes so they don't collide with member names by adding a prefix.
Rearranged 683 goto blocks
Removed 0 continous gotos
Removed 0 unconditional switches
Deobfuscation failed. Please open a ticket on GitHub
java.lang.UnsupportedOperationException
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.execute(DeadCodeRemover.java:797)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$null$49(DeadCodeRemover.java:85)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$transform$50(DeadCodeRemover.java:46)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.transform(DeadCodeRemover.java:45)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.PeepholeOptimizer.transform(PeepholeOptimizer.java:38)
at com.javadeobfuscator.deobfuscator.transformers.zelix.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:142)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Not always useful, but I've sawn a failed obfuscated project I wanted to control and its a bit annoying if there are many classes you have to manually create rename rules.
It might not fit to this project.
Might be doing something wrong idk. I have a server with KVM that has a proprietary client that I want to cleanup.
$ java -jar deobfuscator-1.0.0.jar -input avctKVM.jar -output output.jar -trans
former general.SyntheticBridgeTransformer
Reading complete. Loading hierachy
Could not locate a class file.
Have you added the necessary files to the -path argument?
The error was:
com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: java/lang/Object
at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:230)
at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Don't have the exception now but its very easy to reproduce as allatori has a free version.
The stack trace line number is actually the constant pool size of the class.
I have an error , look at the printscreens ,
http://i.imgur.com/ECBWZNv.png
command used : http://i.imgur.com/Kb1ts9X.png
yes, my patch is correct rt.jar , well I think
I created a folder inside put the Deobfuscator and the jar in which I
http://i.imgur.com/SlJ5yvM.png
If you have any silly mistake my , sorry I'm from Brazil and I am not good in English
> java -jar deobfuscator.jar -input test.jar -output output.jar -transformer allatori.StringEncryptionTransformer
> Warning! Output file already exists
>
> Reading complete. Loading hierachy
>
> Deobfuscation failed. Please open a ticket on GitHub
> com.javadeobfuscator.deobfuscator.Deobfuscator$NoClassInPathException: java/lang/Object
> at com.javadeobfuscator.deobfuscator.Deobfuscator.assureLoaded(Deobfuscator.java:197)
> at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:230)
> at com.javadeobfuscator.deobfuscator.Deobfuscator.loadHierachy(Deobfuscator.java:207)
> at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:160)
> at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
> at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Hope u can fix it soon, if you need I can upload the test file.
--Removed--
java.lang.UnsupportedOperationException
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.execute(DeadCodeRemover.java:797)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$null$49(DeadCodeRemover.java:85)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.lambda$transform$50(DeadCodeRemover.java:46)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.DeadCodeRemover.transform(DeadCodeRemover.java:45)
at com.javadeobfuscator.deobfuscator.transformers.general.peephole.PeepholeOptimizer.transform(PeepholeOptimizer.java:38)
at com.javadeobfuscator.deobfuscator.transformers.zelix.StringEncryptionTransformer.transform(StringEncryptionTransformer.java:142)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Code is still too hacky to be released. Help is appreciated with full deobfuscation of (eg not just decrypting class strings but also local vars storing temporarily decrypted strings)
Code I used to use (needs -1 handlng and maybe some more prefixes to ignore)
private static final Map<Integer, String> opcodeMap = new HashMap<>();
static {
for (Field field : Opcodes.class.getDeclaredFields()) {
try {
String name = field.getName();
if (!name.startsWith("ACC_") && !name.startsWith("H_")) {
opcodeMap.put((Integer) field.get(null), name);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
public static String opcodeToString(int opcode) {
return opcodeMap.get(opcode);
}
the deobfuscator seems to have some problems with some unicode chars. the jar I am trying to normalize has a bunch of chineese letters, some of which can't even be displayed on win10.
this seems to be a issue with asm.
this input jar is this one, I didn't made it so proceed with caution http://www.mediafire.com/download/w99tvemr6u864uk/Output.zip
java -jar deobfuscator-1.0.0.jar -input input.jar -output output.jar -transformer normalizer.ClassNormalizer normalizer.MethodNormalizer normalizer.FieldNormalizer -path "C:\Program Files\Java\jre1.8.0_91\lib\rt.jar" Could not parse ??.class (is it a class?) java.lang.IllegalArgumentException at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:105) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26) Could not parse ??.class (is it a class?) java.lang.IllegalArgumentException at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:105) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26) Deobfuscation failed. Please open a ticket on GitHub java.lang.ArrayIndexOutOfBoundsException: 55572 at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:181) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153) at com.javadeobfuscator.deobfuscator.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:105) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102) at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Spoof issue to tease author.
Stringer] [InvokedynamicTransformer] Starting
[Stringer] [InvokedynamicTransformer] Finding invokedynamic instructions
[Stringer] [InvokedynamicTransformer] Found 1242 invokedynamic instructions
[Stringer] [InvokedynamicTransformer] Inlining invokedynamic
Deobfuscation failed. Please open a ticket on GitHub
com.javadeobfuscator.deobfuscator.executor.exceptions.NoSuchMethodHandlerException: Could not find invoker for java/lang/BootstrapMethodError ()V
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:742)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:923)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:75)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.lambda$null$96(InvokedynamicTransformer.java:111)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.lambda$inlineInvokeDynamic$97(InvokedynamicTransformer.java:91)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.inlineInvokeDynamic(InvokedynamicTransformer.java:90)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.transform(InvokedynamicTransformer.java:55)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:145)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
Still getting this error
[Stringer] [InvokedynamicTransformer] Starting
[Stringer] [InvokedynamicTransformer] Finding invokedynamic instructions
[Stringer] [InvokedynamicTransformer] Found 1242 invokedynamic instructions
[Stringer] [InvokedynamicTransformer] Inlining invokedynamic
Deobfuscation failed. Please open a ticket on GitHub
java.lang.BootstrapMethodError
at com.javadeobfuscator.deobfuscator.executor.defined.JVMMethodProvider$1$22.lambda$new$232(JVMMethodProvider.java:203)
at com.javadeobfuscator.deobfuscator.executor.defined.JVMMethodProvider.invokeMethod(JVMMethodProvider.java:218)
at com.javadeobfuscator.deobfuscator.executor.providers.DelegatingProvider.invokeMethod(DelegatingProvider.java:32)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:745)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:947)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:947)
at com.javadeobfuscator.deobfuscator.executor.MethodExecutor.execute(MethodExecutor.java:78)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.lambda$null$146(InvokedynamicTransformer.java:149)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.lambda$inlineInvokeDynamic$147(InvokedynamicTransformer.java:129)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.inlineInvokeDynamic(InvokedynamicTransformer.java:128)
at com.javadeobfuscator.deobfuscator.transformers.stringer.InvokedynamicTransformer.transform(InvokedynamicTransformer.java:57)
at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:152)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:102)
at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:26)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.