|
|
|
|
@@ -46,72 +46,72 @@ public class Deob
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("rename unique took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove except RuntimeException
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new RuntimeExceptions().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("runtime exception took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove unused methods
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new UnusedMethods().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("unused methods took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
new UnreachedCode().run(group);
|
|
|
|
|
|
|
|
|
|
// remove illegal state exceptions, frees up some parameters
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new IllegalStateExceptions().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("illegal state exception took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove constant logically dead parameters
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new ConstantParameter().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("constant param took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove unhit blocks
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new UnreachedCode().run(group);
|
|
|
|
|
//new UnusedBlocks().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("unused blocks took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove unused parameters
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new UnusedParameters().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("unused params took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove jump obfuscation
|
|
|
|
|
//new Jumps().run(group);
|
|
|
|
|
|
|
|
|
|
// remove unused fields
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new UnusedFields().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("unused fields took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
// remove unused methods, again?
|
|
|
|
|
bstart = System.currentTimeMillis();
|
|
|
|
|
new UnusedMethods().run(group);
|
|
|
|
|
bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
System.out.println("unused methods took " + bdur/1000L + " seconds");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new MethodInliner().run(group);
|
|
|
|
|
|
|
|
|
|
// new ModularArithmeticDeobfuscation().run(group);
|
|
|
|
|
// // remove except RuntimeException
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new RuntimeExceptions().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("runtime exception took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove unused methods
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new UnusedMethods().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("unused methods took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// new UnreachedCode().run(group);
|
|
|
|
|
//
|
|
|
|
|
// // remove illegal state exceptions, frees up some parameters
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new IllegalStateExceptions().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("illegal state exception took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove constant logically dead parameters
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new ConstantParameter().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("constant param took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove unhit blocks
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new UnreachedCode().run(group);
|
|
|
|
|
// //new UnusedBlocks().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("unused blocks took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove unused parameters
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new UnusedParameters().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("unused params took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove jump obfuscation
|
|
|
|
|
// //new Jumps().run(group);
|
|
|
|
|
//
|
|
|
|
|
// // remove unused fields
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new UnusedFields().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("unused fields took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
// // remove unused methods, again?
|
|
|
|
|
// bstart = System.currentTimeMillis();
|
|
|
|
|
// new UnusedMethods().run(group);
|
|
|
|
|
// bdur = System.currentTimeMillis() - bstart;
|
|
|
|
|
// System.out.println("unused methods took " + bdur/1000L + " seconds");
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// new MethodInliner().run(group);
|
|
|
|
|
//
|
|
|
|
|
// new MethodMover().run(group);
|
|
|
|
|
|
|
|
|
|
//new FieldMover().run(group);
|
|
|
|
|
//
|
|
|
|
|
// new FieldInliner().run(group);
|
|
|
|
|
|
|
|
|
|
new FieldMover().run(group);
|
|
|
|
|
|
|
|
|
|
//new UnusedClass().run(group);
|
|
|
|
|
|
|
|
|
|
// new ModularArithmeticDeobfuscation().run(group);
|
|
|
|
|
|
|
|
|
|
saveJar(group, args[1]);
|
|
|
|
|
|
|
|
|
|
|