From e1d207c6375b76c94b4c5d0ff425f90126254a67 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 25 Nov 2015 19:31:03 -0600 Subject: [PATCH] 849 --- .../net/runelite/deob/deobfuscators/rename/Rename2.java | 9 ++++----- .../deob/deobfuscators/rename/graph/EdgeType.java | 4 +++- .../runelite/deob/deobfuscators/rename/graph/Vertex.java | 9 ++++++--- src/main/java/net/runelite/deob/execution/Execution.java | 3 +++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/runelite/deob/deobfuscators/rename/Rename2.java b/src/main/java/net/runelite/deob/deobfuscators/rename/Rename2.java index 0c4e1095e4..1a35464621 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/rename/Rename2.java +++ b/src/main/java/net/runelite/deob/deobfuscators/rename/Rename2.java @@ -221,7 +221,6 @@ public class Rename2 System.out.println(etwo.getGraph()); for (int i = 0; i < 250; ++i) - //for (int i = 0; i < Math.min(one.getClasses().size(), two.getClasses().size()); ++i) { ClassFile c1 = one.findClass("class" + i); ClassFile c2 = two.findClass("class" + i); @@ -240,9 +239,9 @@ public class Rename2 ClassFile cf1 = one.findClass("client"), cf2 = two.findClass("client"); mapDeobfuscatedMethods(cf1, cf2); - //List fl1 = getClientFields(one, eone); - //List fl2 = getClientFields(two, etwo); - +// List fl1 = getClientFields(one, eone); +// List fl2 = getClientFields(two, etwo); +// // for (int i = 0; i < Math.min(fl1.size(), fl2.size()); ++i) // { // Field f1 = fl1.get(i), f2 = fl2.get(i); @@ -315,7 +314,7 @@ public class Rename2 // // show(mappings); - System.out.println("Solved methods "+ g1.solved(VertexType.METHOD) + ", total " + g1.getVerticies().size()); + System.out.println("Solved methods "+ g1.solved(VertexType.METHOD) + ", solved fields " + g1.solved(VertexType.FIELD) + ", total " + g1.getVerticies().size()); //rename(mappings, two); diff --git a/src/main/java/net/runelite/deob/deobfuscators/rename/graph/EdgeType.java b/src/main/java/net/runelite/deob/deobfuscators/rename/graph/EdgeType.java index 691b81be75..c31043ee79 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/rename/graph/EdgeType.java +++ b/src/main/java/net/runelite/deob/deobfuscators/rename/graph/EdgeType.java @@ -4,5 +4,7 @@ public enum EdgeType { INVOKE, GETFIELD, - SETFIELD; + SETFIELD, + + INVOKED_FROM; } diff --git a/src/main/java/net/runelite/deob/deobfuscators/rename/graph/Vertex.java b/src/main/java/net/runelite/deob/deobfuscators/rename/graph/Vertex.java index c501260a86..77b4d26a17 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/rename/graph/Vertex.java +++ b/src/main/java/net/runelite/deob/deobfuscators/rename/graph/Vertex.java @@ -187,10 +187,13 @@ public class Vertex assert is == null; assert other.graph != graph; - Method thism = (Method) object; - Method otherm = (Method) other.object; + if (object instanceof Method) + { + Method thism = (Method) object; + Method otherm = (Method) other.object; - assert thism.getMethods().getClassFile().getName().equals(otherm.getMethods().getClassFile().getName()); + assert thism.getMethods().getClassFile().getName().equals(otherm.getMethods().getClassFile().getName()); + } this.is = other; } diff --git a/src/main/java/net/runelite/deob/execution/Execution.java b/src/main/java/net/runelite/deob/execution/Execution.java index 2e16d878cd..767349e05a 100644 --- a/src/main/java/net/runelite/deob/execution/Execution.java +++ b/src/main/java/net/runelite/deob/execution/Execution.java @@ -208,7 +208,10 @@ public class Execution return; for (Method m : methods) + { graph.addEdge(frame.nonStatic, m, EdgeType.INVOKE); + graph.addEdge(m, frame.nonStatic, EdgeType.INVOKED_FROM); + } } else if (i instanceof FieldInstruction) {