From 22b6c861df68557352fb5a87948f3e065f395ef3 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 10 Aug 2014 22:13:01 -0400 Subject: refactored to remove ClassFile class to prep for upcoming stack navigation. It wasn't really necessary anymore. --- src/cuchaz/enigma/Deobfuscator.java | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/cuchaz/enigma/Deobfuscator.java') diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index 16c11d3..8d4394c 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java @@ -17,7 +17,6 @@ import java.io.InputStream; import java.io.StringWriter; import java.util.Enumeration; import java.util.List; -import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -139,43 +138,41 @@ public class Deobfuscator return m_mappings.getTranslator( m_ancestries, direction ); } - public void getSeparatedClasses( List obfClasses, Map deobfClasses ) + public void getSeparatedClasses( List obfClasses, List deobfClasses ) { for( String obfClassName : m_obfClassNames ) { - ClassFile classFile = new ClassFile( obfClassName ); - // separate the classes - ClassMapping classMapping = m_mappings.getClassByObf( classFile.getName() ); + ClassMapping classMapping = m_mappings.getClassByObf( obfClassName ); if( classMapping != null ) { - deobfClasses.put( classFile, classMapping.getDeobfName() ); + deobfClasses.add( classMapping.getDeobfName() ); } - else if( classFile.isInPackage() ) + else if( obfClassName.indexOf( '/' ) >= 0 ) { - deobfClasses.put( classFile, classFile.getName() ); + // this class is in a package and therefore is not obfuscated + deobfClasses.add( obfClassName ); } else { - obfClasses.add( classFile ); + obfClasses.add( obfClassName ); } } } - public SourceIndex getSource( final ClassFile classFile ) + public SourceIndex getSource( String className ) { // is this class deobfuscated? // we need to tell the decompiler the deobfuscated name so it doesn't get freaked out // the decompiler only sees the deobfuscated class, so we need to load it by the deobfuscated name - String deobfName = classFile.getName(); - ClassMapping classMapping = m_mappings.getClassByObf( classFile.getName() ); + ClassMapping classMapping = m_mappings.getClassByObf( className ); if( classMapping != null ) { - deobfName = classMapping.getDeobfName(); + className = classMapping.getDeobfName(); } // decompile it! - TypeDefinition resolvedType = new MetadataSystem( m_settings.getTypeLoader() ).lookupType( deobfName ).resolve(); + TypeDefinition resolvedType = new MetadataSystem( m_settings.getTypeLoader() ).lookupType( className ).resolve(); DecompilerContext context = new DecompilerContext(); context.setCurrentType( resolvedType ); context.setSettings( m_settings ); -- cgit v1.2.3