From 9c28492b717b866c6b70fe1ef4552eac66857f25 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 24 Aug 2014 16:35:38 -0400 Subject: minor bug fixes --- src/cuchaz/enigma/Deobfuscator.java | 1 + src/cuchaz/enigma/Main.java | 2 +- src/cuchaz/enigma/TranslatingTypeLoader.java | 6 +++++- src/cuchaz/enigma/bytecode/ClassRenamer.java | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index cfd28429..0bc4a043 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java @@ -73,6 +73,7 @@ public class Deobfuscator // config the decompiler m_settings = DecompilerSettings.javaDefaults(); + m_settings.setForceExplicitImports( true ); // DEBUG //m_settings.setShowSyntheticMembers( true ); diff --git a/src/cuchaz/enigma/Main.java b/src/cuchaz/enigma/Main.java index c1547193..fe4d6e34 100644 --- a/src/cuchaz/enigma/Main.java +++ b/src/cuchaz/enigma/Main.java @@ -32,7 +32,7 @@ public class Main } // DEBUG - //gui.getController().openDeclaration( new ClassEntry( "none/aay" ) ); + //gui.getController().openDeclaration( new ClassEntry( "none/bgl" ) ); } private static File getFile( String path ) diff --git a/src/cuchaz/enigma/TranslatingTypeLoader.java b/src/cuchaz/enigma/TranslatingTypeLoader.java index 162858de..763d767c 100644 --- a/src/cuchaz/enigma/TranslatingTypeLoader.java +++ b/src/cuchaz/enigma/TranslatingTypeLoader.java @@ -27,6 +27,7 @@ import javassist.bytecode.Descriptor; import com.beust.jcommander.internal.Maps; import com.strobel.assembler.metadata.Buffer; +import com.strobel.assembler.metadata.ClasspathTypeLoader; import com.strobel.assembler.metadata.ITypeLoader; import cuchaz.enigma.analysis.BridgeFixer; @@ -45,6 +46,7 @@ public class TranslatingTypeLoader implements ITypeLoader private Translator m_obfuscatingTranslator; private Translator m_deobfuscatingTranslator; private Map m_cache; + private ClasspathTypeLoader m_defaultTypeLoader; public TranslatingTypeLoader( JarFile jar, JarIndex jarIndex, Translator obfuscatingTranslator, Translator deobfuscatingTranslator ) { @@ -53,6 +55,7 @@ public class TranslatingTypeLoader implements ITypeLoader m_obfuscatingTranslator = obfuscatingTranslator; m_deobfuscatingTranslator = deobfuscatingTranslator; m_cache = Maps.newHashMap(); + m_defaultTypeLoader = new ClasspathTypeLoader(); } public void clearCache( ) @@ -77,7 +80,8 @@ public class TranslatingTypeLoader implements ITypeLoader if( data == null ) { - return false; + // chain to default type loader + return m_defaultTypeLoader.tryLoadType( deobfClassName, out ); } // send the class to the decompiler diff --git a/src/cuchaz/enigma/bytecode/ClassRenamer.java b/src/cuchaz/enigma/bytecode/ClassRenamer.java index cba58617..f3a8c0ef 100644 --- a/src/cuchaz/enigma/bytecode/ClassRenamer.java +++ b/src/cuchaz/enigma/bytecode/ClassRenamer.java @@ -45,6 +45,10 @@ public class ClassRenamer { ClassEntry inClassEntry = new ClassEntry( Descriptor.toJvmName( attr.innerClass( i ) ) ); ClassEntry outClassEntry = map.get( inClassEntry ); + if( outClassEntry == null ) + { + continue; + } attr.setInnerClassIndex( i, constants.addClassInfo( outClassEntry.getName() ) ); if( attr.outerClassIndex( i ) != 0 ) { -- cgit v1.2.3