java-deobfuscator / deobfuscator

The real deal
https://javadeobfuscator.com
Apache License 2.0
1.56k stars 290 forks source link

IndexOutOfBoundsException when detecting obfuscation method #737

Open Bonista opened 3 years ago

Bonista commented 3 years ago
[Thread-13] INFO com.javadeobfuscator.deobfuscator.Deobfuscator - Loading input
[Thread-13] INFO com.javadeobfuscator.deobfuscator.Deobfuscator - Detecting known obfuscators

Deobfuscation failed. Please open a ticket on GitHub and provide the following error:
java.lang.IndexOutOfBoundsException: Trying to set an inexistant local variable 0
    at org.objectweb.asm.tree.analysis.Frame.setLocal(Frame.java:178)
    at org.objectweb.asm.tree.analysis.Analyzer.computeInitialFrame(Analyzer.java:397)
    at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:162)
    at com.javadeobfuscator.deobfuscator.rules.allatori.RuleStringDecryptor.test(RuleStringDecryptor.java:48)
    at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:336)
    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 com.javadeobfuscator.deobfuscator.ui.wrap.Deobfuscator.run(Deobfuscator.java:74)
    at com.javadeobfuscator.deobfuscator.ui.SwingWindow$15$1.run(SwingWindow.java:812)
    at java.lang.Thread.run(Unknown Source)

The class names for the jar are all the same, and don't end with .class, how would I go about getting past this?

This file is publicly available by doing "wget "https://maven.aristois.net/me/deftware/aristois/latest-1.12.2/aristois-latest-1.12.2.jar" -O Aristois.jar".

Requires EMC library: https://gitlab.com/EMC-Framework/maven/raw/master/me/deftware/EMC-Forge/latest-1.12.2/EMC-Forge-latest-1.12.2.jar

ThisTestUser commented 3 years ago

This issue no longer exists in the latest version of deobfuscator, and you can use PackageTruncator to fix the class with the long name. The problem is that Aristois uses custom obfuscation, so there aren't any transformers for that.