summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cuchaz/enigma/Deobfuscator.java8
-rw-r--r--src/cuchaz/enigma/Main.java3
-rw-r--r--src/cuchaz/enigma/TranslatingTypeLoader.java2
-rw-r--r--src/cuchaz/enigma/analysis/JarIndex.java5
4 files changed, 12 insertions, 6 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java
index 7e0f0927..82c786cb 100644
--- a/src/cuchaz/enigma/Deobfuscator.java
+++ b/src/cuchaz/enigma/Deobfuscator.java
@@ -127,11 +127,13 @@ public class Deobfuscator
127 Map<String,String> renames = Maps.newHashMap(); 127 Map<String,String> renames = Maps.newHashMap();
128 for( ClassMapping classMapping : val.classes() ) 128 for( ClassMapping classMapping : val.classes() )
129 { 129 {
130 String outerClassName = m_jarIndex.getOuterClass( classMapping.getObfName() ); 130 // make sure we strip the packages off of obfuscated inner classes
131 String innerClassName = new ClassEntry( classMapping.getObfName() ).getSimpleName();
132 String outerClassName = m_jarIndex.getOuterClass( innerClassName );
131 if( outerClassName != null ) 133 if( outerClassName != null )
132 { 134 {
133 // build the composite class name 135 // build the composite class name
134 String newName = outerClassName + "$" + new ClassEntry( classMapping.getObfName() ).getSimpleName(); 136 String newName = outerClassName + "$" + innerClassName;
135 137
136 // add a rename 138 // add a rename
137 renames.put( classMapping.getObfName(), newName ); 139 renames.put( classMapping.getObfName(), newName );
@@ -217,7 +219,7 @@ public class Deobfuscator
217 { 219 {
218 // check the class 220 // check the class
219 ClassEntry classEntry = new ClassEntry( classMapping.getObfName() ); 221 ClassEntry classEntry = new ClassEntry( classMapping.getObfName() );
220 String outerClassName = m_jarIndex.getOuterClass( classMapping.getObfName() ); 222 String outerClassName = m_jarIndex.getOuterClass( classEntry.getSimpleName() );
221 if( outerClassName != null ) 223 if( outerClassName != null )
222 { 224 {
223 classEntry = new ClassEntry( outerClassName + "$" + classMapping.getObfName() ); 225 classEntry = new ClassEntry( outerClassName + "$" + classMapping.getObfName() );
diff --git a/src/cuchaz/enigma/Main.java b/src/cuchaz/enigma/Main.java
index 371662bc..73a12db5 100644
--- a/src/cuchaz/enigma/Main.java
+++ b/src/cuchaz/enigma/Main.java
@@ -13,7 +13,6 @@ package cuchaz.enigma;
13import java.io.File; 13import java.io.File;
14 14
15import cuchaz.enigma.gui.Gui; 15import cuchaz.enigma.gui.Gui;
16import cuchaz.enigma.mapping.ClassEntry;
17 16
18public class Main 17public class Main
19{ 18{
@@ -33,7 +32,7 @@ public class Main
33 } 32 }
34 33
35 // DEBUG 34 // DEBUG
36 gui.getController().openDeclaration( new ClassEntry( "none/ry" ) ); 35 //gui.getController().openDeclaration( new ClassEntry( "none/ces" ) );
37 } 36 }
38 37
39 private static File getFile( String path ) 38 private static File getFile( String path )
diff --git a/src/cuchaz/enigma/TranslatingTypeLoader.java b/src/cuchaz/enigma/TranslatingTypeLoader.java
index 939e342d..e69e5cfe 100644
--- a/src/cuchaz/enigma/TranslatingTypeLoader.java
+++ b/src/cuchaz/enigma/TranslatingTypeLoader.java
@@ -123,7 +123,7 @@ public class TranslatingTypeLoader implements ITypeLoader
123 ClassEntry obfClassEntry = m_obfuscatingTranslator.translateEntry( deobfClassEntry ); 123 ClassEntry obfClassEntry = m_obfuscatingTranslator.translateEntry( deobfClassEntry );
124 124
125 // is this an inner class referenced directly? 125 // is this an inner class referenced directly?
126 String obfOuterClassName = m_jarIndex.getOuterClass( obfClassEntry.getName() ); 126 String obfOuterClassName = m_jarIndex.getOuterClass( obfClassEntry.getSimpleName() );
127 if( obfOuterClassName != null ) 127 if( obfOuterClassName != null )
128 { 128 {
129 // this class doesn't really exist. Reference it by outer$inner instead 129 // this class doesn't really exist. Reference it by outer$inner instead
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java
index ba082064..0954564e 100644
--- a/src/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/cuchaz/enigma/analysis/JarIndex.java
@@ -885,6 +885,11 @@ public class JarIndex
885 885
886 public String getOuterClass( String obfInnerClassName ) 886 public String getOuterClass( String obfInnerClassName )
887 { 887 {
888 // make sure we use the right name
889 if( new ClassEntry( obfInnerClassName ).getPackageName() != null )
890 {
891 throw new IllegalArgumentException( "Don't reference obfuscated inner classes using packages: " + obfInnerClassName );
892 }
888 return m_outerClasses.get( obfInnerClassName ); 893 return m_outerClasses.get( obfInnerClassName );
889 } 894 }
890 895