From bd2e62c22f0f5586b9e40ddb74184a49567a59d2 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 21 Oct 2015 21:37:31 -0400 Subject: [PATCH] Ran it a few times, is reobbing some stuff, seems not worse than the old stuff? --- .../deobfuscators/arithmetic/ModArith.java | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/runelite/deob/deobfuscators/arithmetic/ModArith.java b/src/main/java/net/runelite/deob/deobfuscators/arithmetic/ModArith.java index 00c74ec626..d1b0529261 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/arithmetic/ModArith.java +++ b/src/main/java/net/runelite/deob/deobfuscators/arithmetic/ModArith.java @@ -150,6 +150,8 @@ public class ModArith implements Deobfuscator || fi.getField().getNameAndType().getDescriptorType().getArrayDims() != 0) continue; + //if (!fi.getMyField().getName().equals("field2865")) continue; + List l = this.getInsInExpr(ctx, new HashSet()); for (InstructionContext i : l) { @@ -333,6 +335,8 @@ public class ModArith implements Deobfuscator for (Integer i2 : constants) { if (i == 0 || i2 == 0) + //|| i == -1 || i2 == -1 + //|| i == 1 || i2 == 1) continue; int result = i * i2; @@ -411,7 +415,24 @@ public class ModArith implements Deobfuscator g2 = isGetter(field, col, s2); if (g == null || g2 == null || g == g2) - System.out.println(field.getName() + " " + s1 + " * " + s2 + " = " + smallest + " " + g + " " + g2); + System.out.println("BAD " + field.getName() + " " + s1 + " * " + s2 + " = " + smallest + " " + g + " " + g2); + else + { + System.out.println("GOOD " + field.getName() + " " + s1 + " * " + s2 + " = " + smallest + " " + g + " " + g2); + Pair p = new Pair(); + p.field = field; + if (g) + { + p.getter = s1; + p.setter = s2; + } + else + { + p.getter = s2; + p.setter = s1; + } + return p; + } return null; } @@ -442,14 +463,18 @@ public class ModArith implements Deobfuscator if (col == null) continue; - if (f.getName().equals("field3045")) + //if (f.getName().equals("field2865")) { - col = col.stream().filter(i -> DMath.isBig(i.value)).collect(Collectors.toList()); + //Collection col3 = col.stream().map(i -> i.value).collect(Collectors.toSet()); + + Collection col2 = col.stream().filter(i -> DMath.isBig(i.value)).collect(Collectors.toList()); - Set set = col.stream().map(i -> i.value).collect(Collectors.toSet()); + Set set = col2.stream().map(i -> i.value).collect(Collectors.toSet()); // - this.guess2(f, col, set); + Pair p = this.guess2(f, col2, set); + if (p != null) + pairs.add(p); } } }