summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--build.py4
-rw-r--r--readme.txt4
-rw-r--r--src/cuchaz/enigma/Constants.java2
-rw-r--r--src/cuchaz/enigma/TranslatingTypeLoader.java2
-rw-r--r--src/cuchaz/enigma/analysis/BridgeMarker.java11
-rw-r--r--src/cuchaz/enigma/analysis/JarIndex.java10
-rw-r--r--test/cuchaz/enigma/TestSourceIndex.java2
7 files changed, 15 insertions, 20 deletions
diff --git a/build.py b/build.py
index bc9561b..f5723e0 100644
--- a/build.py
+++ b/build.py
@@ -18,8 +18,8 @@ import ssjb
18import ssjb.ivy 18import ssjb.ivy
19 19
20 20
21ArtifactStandalone = ssjb.ivy.Dep("cuchaz:enigma:0.6b") 21ArtifactStandalone = ssjb.ivy.Dep("cuchaz:enigma:0.7b")
22ArtifactLib = ssjb.ivy.Dep("cuchaz:enigma-lib:0.6b") 22ArtifactLib = ssjb.ivy.Dep("cuchaz:enigma-lib:0.7b")
23 23
24# dependencies 24# dependencies
25ExtraRepos = [ 25ExtraRepos = [
diff --git a/readme.txt b/readme.txt
index 3844f54..db294cd 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,8 +1,8 @@
1 1
2Enigma v0.6 beta 2Enigma v0.7 beta
3A tool for deobfuscation of Java bytecode 3A tool for deobfuscation of Java bytecode
4 4
5Copyright Jeff Martin, 2014 5Copyright Jeff Martin, 2015
6 6
7 7
8LICENSE 8LICENSE
diff --git a/src/cuchaz/enigma/Constants.java b/src/cuchaz/enigma/Constants.java
index a1ba2e9..3bf3999 100644
--- a/src/cuchaz/enigma/Constants.java
+++ b/src/cuchaz/enigma/Constants.java
@@ -12,7 +12,7 @@ package cuchaz.enigma;
12 12
13public class Constants { 13public class Constants {
14 public static final String Name = "Enigma"; 14 public static final String Name = "Enigma";
15 public static final String Version = "0.6 beta"; 15 public static final String Version = "0.7 beta";
16 public static final String Url = "http://www.cuchazinteractive.com/enigma"; 16 public static final String Url = "http://www.cuchazinteractive.com/enigma";
17 public static final int MiB = 1024 * 1024; // 1 mebibyte 17 public static final int MiB = 1024 * 1024; // 1 mebibyte
18 public static final int KiB = 1024; // 1 kebibyte 18 public static final int KiB = 1024; // 1 kebibyte
diff --git a/src/cuchaz/enigma/TranslatingTypeLoader.java b/src/cuchaz/enigma/TranslatingTypeLoader.java
index 19e3d2a..12cde4b 100644
--- a/src/cuchaz/enigma/TranslatingTypeLoader.java
+++ b/src/cuchaz/enigma/TranslatingTypeLoader.java
@@ -199,7 +199,7 @@ public class TranslatingTypeLoader implements ITypeLoader {
199 assertClassName(c, obfClassEntry); 199 assertClassName(c, obfClassEntry);
200 200
201 // do all kinds of deobfuscating transformations on the class 201 // do all kinds of deobfuscating transformations on the class
202 new BridgeMarker(m_jarIndex.getBridgedMethods()).markBridges(c); 202 new BridgeMarker(m_jarIndex).markBridges(c);
203 new MethodParameterWriter(m_deobfuscatingTranslator).writeMethodArguments(c); 203 new MethodParameterWriter(m_deobfuscatingTranslator).writeMethodArguments(c);
204 new ClassTranslator(m_deobfuscatingTranslator).translate(c); 204 new ClassTranslator(m_deobfuscatingTranslator).translate(c);
205 205
diff --git a/src/cuchaz/enigma/analysis/BridgeMarker.java b/src/cuchaz/enigma/analysis/BridgeMarker.java
index e80f87d..28e3517 100644
--- a/src/cuchaz/enigma/analysis/BridgeMarker.java
+++ b/src/cuchaz/enigma/analysis/BridgeMarker.java
@@ -3,18 +3,15 @@ package cuchaz.enigma.analysis;
3import javassist.CtClass; 3import javassist.CtClass;
4import javassist.CtMethod; 4import javassist.CtMethod;
5import javassist.bytecode.AccessFlag; 5import javassist.bytecode.AccessFlag;
6
7import com.google.common.collect.BiMap;
8
9import cuchaz.enigma.mapping.EntryFactory; 6import cuchaz.enigma.mapping.EntryFactory;
10import cuchaz.enigma.mapping.MethodEntry; 7import cuchaz.enigma.mapping.MethodEntry;
11 8
12public class BridgeMarker { 9public class BridgeMarker {
13 10
14 private BiMap<MethodEntry,MethodEntry> m_bridgedMethods; 11 private JarIndex m_jarIndex;
15 12
16 public BridgeMarker(BiMap<MethodEntry,MethodEntry> bridgedMethods) { 13 public BridgeMarker(JarIndex jarIndex) {
17 m_bridgedMethods = bridgedMethods; 14 m_jarIndex = jarIndex;
18 } 15 }
19 16
20 public void markBridges(CtClass c) { 17 public void markBridges(CtClass c) {
@@ -23,7 +20,7 @@ public class BridgeMarker {
23 MethodEntry methodEntry = EntryFactory.getMethodEntry(method); 20 MethodEntry methodEntry = EntryFactory.getMethodEntry(method);
24 21
25 // is this a bridge method? 22 // is this a bridge method?
26 MethodEntry bridgedMethodEntry = m_bridgedMethods.get(methodEntry); 23 MethodEntry bridgedMethodEntry = m_jarIndex.getBridgedMethod(methodEntry);
27 if (bridgedMethodEntry != null) { 24 if (bridgedMethodEntry != null) {
28 25
29 // it's a bridge method! add the bridge flag 26 // it's a bridge method! add the bridge flag
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java
index 797deb8..1c74f15 100644
--- a/src/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/cuchaz/enigma/analysis/JarIndex.java
@@ -34,8 +34,6 @@ import javassist.expr.FieldAccess;
34import javassist.expr.MethodCall; 34import javassist.expr.MethodCall;
35import javassist.expr.NewExpr; 35import javassist.expr.NewExpr;
36 36
37import com.google.common.collect.BiMap;
38import com.google.common.collect.HashBiMap;
39import com.google.common.collect.HashMultimap; 37import com.google.common.collect.HashMultimap;
40import com.google.common.collect.Lists; 38import com.google.common.collect.Lists;
41import com.google.common.collect.Maps; 39import com.google.common.collect.Maps;
@@ -66,7 +64,7 @@ public class JarIndex {
66 private Multimap<String,String> m_innerClasses; 64 private Multimap<String,String> m_innerClasses;
67 private Map<String,String> m_outerClasses; 65 private Map<String,String> m_outerClasses;
68 private Map<String,BehaviorEntry> m_anonymousClasses; 66 private Map<String,BehaviorEntry> m_anonymousClasses;
69 private BiMap<MethodEntry,MethodEntry> m_bridgedMethods; 67 private Map<MethodEntry,MethodEntry> m_bridgedMethods;
70 68
71 public JarIndex() { 69 public JarIndex() {
72 m_obfClassEntries = Sets.newHashSet(); 70 m_obfClassEntries = Sets.newHashSet();
@@ -79,7 +77,7 @@ public class JarIndex {
79 m_innerClasses = HashMultimap.create(); 77 m_innerClasses = HashMultimap.create();
80 m_outerClasses = Maps.newHashMap(); 78 m_outerClasses = Maps.newHashMap();
81 m_anonymousClasses = Maps.newHashMap(); 79 m_anonymousClasses = Maps.newHashMap();
82 m_bridgedMethods = HashBiMap.create(); 80 m_bridgedMethods = Maps.newHashMap();
83 } 81 }
84 82
85 public void indexJar(JarFile jar, boolean buildInnerClasses) { 83 public void indexJar(JarFile jar, boolean buildInnerClasses) {
@@ -758,7 +756,7 @@ public class JarIndex {
758 } 756 }
759 } 757 }
760 758
761 public BiMap<MethodEntry,MethodEntry> getBridgedMethods() { 759 public MethodEntry getBridgedMethod(MethodEntry bridgeMethodEntry) {
762 return m_bridgedMethods; 760 return m_bridgedMethods.get(bridgeMethodEntry);
763 } 761 }
764} 762}
diff --git a/test/cuchaz/enigma/TestSourceIndex.java b/test/cuchaz/enigma/TestSourceIndex.java
index 357acb6..96a8923 100644
--- a/test/cuchaz/enigma/TestSourceIndex.java
+++ b/test/cuchaz/enigma/TestSourceIndex.java
@@ -24,7 +24,7 @@ import cuchaz.enigma.mapping.ClassEntry;
24public class TestSourceIndex { 24public class TestSourceIndex {
25 25
26 // TEMP 26 // TEMP
27 //@Test 27 @Test
28 public void indexEverything() 28 public void indexEverything()
29 throws Exception { 29 throws Exception {
30 Deobfuscator deobfuscator = new Deobfuscator(new JarFile("input/1.8.jar")); 30 Deobfuscator deobfuscator = new Deobfuscator(new JarFile("input/1.8.jar"));