Trying to make this work live, constant param deob is breaking stuff

This commit is contained in:
Adam
2015-08-09 12:10:58 -04:00
parent 7c336948fc
commit ba1ff95628
2 changed files with 25 additions and 24 deletions

View File

@@ -8,6 +8,7 @@ import info.sigterm.deob.deobfuscators.UnusedMethods;
import info.sigterm.deob.deobfuscators.UnusedParameters; import info.sigterm.deob.deobfuscators.UnusedParameters;
import info.sigterm.deob.deobfuscators.ConstantParameter; import info.sigterm.deob.deobfuscators.ConstantParameter;
import info.sigterm.deob.deobfuscators.MethodInliner; import info.sigterm.deob.deobfuscators.MethodInliner;
import info.sigterm.deob.deobfuscators.RenameUnique;
import info.sigterm.deob.deobfuscators.UnreachedCode; import info.sigterm.deob.deobfuscators.UnreachedCode;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@@ -59,18 +60,18 @@ public class Deob
bdur = System.currentTimeMillis() - bstart; bdur = System.currentTimeMillis() - bstart;
System.out.println("illegal state exception took " + bdur/1000L + " seconds"); System.out.println("illegal state exception took " + bdur/1000L + " seconds");
// remove constant logically dead parameters // // remove constant logically dead parameters
bstart = System.currentTimeMillis(); // bstart = System.currentTimeMillis();
new ConstantParameter().run(group); // new ConstantParameter().run(group);
bdur = System.currentTimeMillis() - bstart; // bdur = System.currentTimeMillis() - bstart;
System.out.println("constant param took " + bdur/1000L + " seconds"); // System.out.println("constant param took " + bdur/1000L + " seconds");
//
// remove unhit blocks // // remove unhit blocks
bstart = System.currentTimeMillis(); // bstart = System.currentTimeMillis();
new UnreachedCode().run(group); // new UnreachedCode().run(group);
//new UnusedBlocks().run(group); // //new UnusedBlocks().run(group);
bdur = System.currentTimeMillis() - bstart; // bdur = System.currentTimeMillis() - bstart;
System.out.println("unused blocks took " + bdur/1000L + " seconds"); // System.out.println("unused blocks took " + bdur/1000L + " seconds");
// remove unused parameters // remove unused parameters
// bstart = System.currentTimeMillis(); // bstart = System.currentTimeMillis();
@@ -82,20 +83,20 @@ public class Deob
//new Jumps().run(group); //new Jumps().run(group);
// remove unused fields // remove unused fields
bstart = System.currentTimeMillis(); // bstart = System.currentTimeMillis();
new UnusedFields().run(group); // new UnusedFields().run(group);
bdur = System.currentTimeMillis() - bstart; // bdur = System.currentTimeMillis() - bstart;
System.out.println("unused fields took " + bdur/1000L + " seconds"); // System.out.println("unused fields took " + bdur/1000L + " seconds");
//
// remove unused methods, again? // // remove unused methods, again?
bstart = System.currentTimeMillis(); // bstart = System.currentTimeMillis();
new UnusedMethods().run(group); // new UnusedMethods().run(group);
bdur = System.currentTimeMillis() - bstart; // bdur = System.currentTimeMillis() - bstart;
System.out.println("unused methods took " + bdur/1000L + " seconds"); // System.out.println("unused methods took " + bdur/1000L + " seconds");
//new ModularArithmeticDeobfuscation().run(group); //new ModularArithmeticDeobfuscation().run(group);
new MethodInliner().run(group); //new MethodInliner().run(group);
saveJar(group, args[1]); saveJar(group, args[1]);

View File

@@ -65,6 +65,6 @@ public class MultiANewArray extends Instruction
// class is an array type, ugh. // class is an array type, ugh.
info.sigterm.deob.signature.Type t = new info.sigterm.deob.signature.Type(clazz.getName()); info.sigterm.deob.signature.Type t = new info.sigterm.deob.signature.Type(clazz.getName());
if (t.getType().equals("L" + cf.getName() + ";")) if (t.getType().equals("L" + cf.getName() + ";"))
clazz = new Class(name, t.getArrayDims()); clazz = new Class("L" + name + ";", t.getArrayDims());
} }
} }