Originally Posted by
Netty
My deobfuscator combines all static methods into one class except static initializers without any side effects. Moving static fields can cause semantic and runtime changes if not careful, but it's easy to refactor->move them manually in eclipse, then merging the static initializers. The result is one huge class containing all static methods and most static fields. Here's a 138 deob:
ffdeob138
As for the nasty loops inside the runescript handler, it's fernflower going crazy over the method's CFG. Also in 138, the runescript handler is cut into many sub-handlers and sub-sub-handlers in different static methods. yuck
Fernflower - produces nasty loops
Procyon - produces nasty loops
CFR - fails "to fully structure code"
Krakatau - no nasty loops, but causes causes runtime exceptions
JODE -
http://puu.sh/uSbeV/435c49835a.png
JADX - complete fail
JAD - complete fail
I have a suggestion for your deobfusticator. For data classes such as these.. You can name them like DataClass1.. DataClass2..... etc I found 11 classes from your release that are all like this.
These are classes that do not contain any methods and are not extending or implementing any other interfaces.
Code:
public class Class7 {
static int staticInt30;
String aString4;
static int staticInt31;
static byte[][] staticByteArrayArray1;
String aString5;
public static int staticInt32;
}
you must of used fernflow as well because this method is still the same as Leon's.
https://hastebin.com/jehabemika.java