From 75364815aa2073dfb382a458516351aa98346974 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 18 Oct 2015 20:34:20 -0400 Subject: [PATCH] Unused params is not working --- src/main/java/net/runelite/deob/Deob.java | 50 +++++++++---------- .../deob/deobfuscators/UnusedParameters.java | 2 + .../net/runelite/deob/execution/Frame.java | 5 +- .../deob/execution/InstructionContext.java | 5 ++ 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/main/java/net/runelite/deob/Deob.java b/src/main/java/net/runelite/deob/Deob.java index 881323e349..acb8f8c4be 100644 --- a/src/main/java/net/runelite/deob/Deob.java +++ b/src/main/java/net/runelite/deob/Deob.java @@ -39,36 +39,36 @@ public class Deob ClassGroup group = loadJar(args[0]); - run(group, new RenameUnique()); - - // remove except RuntimeException - run(group, new RuntimeExceptions()); - - // remove unused methods - run(group, new UnusedMethods()); - - run(group, new UnreachedCode()); - - // remove illegal state exceptions, frees up some parameters - run(group, new IllegalStateExceptions()); - - // remove constant logically dead parameters - run(group, new ConstantParameter()); - - // remove unhit blocks - run(group, new UnreachedCode()); - -// // remove unused parameters -// run(group, new UnusedParameters()); +// run(group, new RenameUnique()); +// +// // remove except RuntimeException +// run(group, new RuntimeExceptions()); // -// // remove jump obfuscation -// //new Jumps().run(group); +// // remove unused methods +// run(group, new UnusedMethods()); // +// run(group, new UnreachedCode()); +// +// // remove illegal state exceptions, frees up some parameters +// run(group, new IllegalStateExceptions()); +// +// // remove constant logically dead parameters +// run(group, new ConstantParameter()); +// +// // remove unhit blocks +// run(group, new UnreachedCode()); + + // remove unused parameters + run(group, new UnusedParameters()); + + // remove jump obfuscation + //new Jumps().run(group); + // remove unused fields - run(group, new UnusedFields()); + //run(group, new UnusedFields()); // remove unused methods, again? - run(group, new UnusedMethods()); + //run(group, new UnusedMethods()); // // run(group, new MethodInliner()); // diff --git a/src/main/java/net/runelite/deob/deobfuscators/UnusedParameters.java b/src/main/java/net/runelite/deob/deobfuscators/UnusedParameters.java index e54005b2bf..2da850661b 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/UnusedParameters.java +++ b/src/main/java/net/runelite/deob/deobfuscators/UnusedParameters.java @@ -260,6 +260,8 @@ public class UnusedParameters implements Deobfuscator int[] i; do { + group.buildClassGraph(); + Execution execution = new Execution(group); execution.populateInitialMethods(); execution.run(); diff --git a/src/main/java/net/runelite/deob/execution/Frame.java b/src/main/java/net/runelite/deob/execution/Frame.java index 5fa1af7cfc..22089a9e4d 100644 --- a/src/main/java/net/runelite/deob/execution/Frame.java +++ b/src/main/java/net/runelite/deob/execution/Frame.java @@ -169,7 +169,10 @@ public class Frame while (stack.getSize() > 0) { StackContext stacki = stack.pop(); - System.err.println(stacki); + InstructionContext pushed = stacki.getPushed(); + Frame frame = pushed.getFrame(); + + System.err.println(pushed.getInstruction().getDesc(frame)); } System.err.println("end of stack"); ex.printStackTrace(); diff --git a/src/main/java/net/runelite/deob/execution/InstructionContext.java b/src/main/java/net/runelite/deob/execution/InstructionContext.java index 10c62f6c9d..5cbbf094e4 100644 --- a/src/main/java/net/runelite/deob/execution/InstructionContext.java +++ b/src/main/java/net/runelite/deob/execution/InstructionContext.java @@ -59,6 +59,11 @@ public class InstructionContext { return ins; } + + public Frame getFrame() + { + return frame; + } public Stack getStack() {