From 575447097876b5cf3dfbae8fa1f6f749819e97b8 Mon Sep 17 00:00:00 2001 From: jeff Date: Fri, 26 Sep 2014 00:33:07 -0400 Subject: implemented mark-as-deobfuscated and reset-to-obfuscated --- src/cuchaz/enigma/Deobfuscator.java | 68 ++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 8 deletions(-) (limited to 'src/cuchaz/enigma/Deobfuscator.java') diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index 9a33917..44845ba 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java @@ -508,23 +508,19 @@ public class Deobfuscator Translator translator = getTranslator( TranslationDirection.Deobfuscating ); if( obfEntry instanceof ClassEntry ) { - String deobfName = translator.translate( (ClassEntry)obfEntry ); - return deobfName != null && !deobfName.equals( obfEntry.getName() ); + return translator.translate( (ClassEntry)obfEntry ) != null; } else if( obfEntry instanceof FieldEntry ) { - String deobfName = translator.translate( (FieldEntry)obfEntry ); - return deobfName != null && !deobfName.equals( obfEntry.getName() ); + return translator.translate( (FieldEntry)obfEntry ) != null; } else if( obfEntry instanceof MethodEntry ) { - String deobfName = translator.translate( (MethodEntry)obfEntry ); - return deobfName != null && !deobfName.equals( obfEntry.getName() ); + return translator.translate( (MethodEntry)obfEntry ) != null; } else if( obfEntry instanceof ConstructorEntry ) { - String deobfName = translator.translate( obfEntry.getClassEntry() ); - return deobfName != null && !deobfName.equals( obfEntry.getClassName() ); + return translator.translate( obfEntry.getClassEntry() ) != null; } else if( obfEntry instanceof ArgumentEntry ) { @@ -540,4 +536,60 @@ public class Deobfuscator { return m_jarIndex.containsObfEntry( obfEntry ); } + + public void removeMapping( Entry obfEntry ) + { + if( obfEntry instanceof ClassEntry ) + { + m_renamer.removeClassMapping( (ClassEntry)obfEntry ); + } + else if( obfEntry instanceof FieldEntry ) + { + m_renamer.removeFieldMapping( (FieldEntry)obfEntry ); + } + else if( obfEntry instanceof MethodEntry ) + { + m_renamer.removeMethodTreeMapping( (MethodEntry)obfEntry ); + } + else if( obfEntry instanceof ConstructorEntry ) + { + m_renamer.removeClassMapping( obfEntry.getClassEntry() ); + } + else if( obfEntry instanceof ArgumentEntry ) + { + m_renamer.removeArgumentMapping( (ArgumentEntry)obfEntry ); + } + else + { + throw new Error( "Unknown entry type: " + obfEntry ); + } + } + + public void markAsDeobfuscated( Entry obfEntry ) + { + if( obfEntry instanceof ClassEntry ) + { + m_renamer.markClassAsDeobfuscated( (ClassEntry)obfEntry ); + } + else if( obfEntry instanceof FieldEntry ) + { + m_renamer.markFieldAsDeobfuscated( (FieldEntry)obfEntry ); + } + else if( obfEntry instanceof MethodEntry ) + { + m_renamer.markMethodTreeAsDeobfuscated( (MethodEntry)obfEntry ); + } + else if( obfEntry instanceof ConstructorEntry ) + { + m_renamer.markClassAsDeobfuscated( obfEntry.getClassEntry() ); + } + else if( obfEntry instanceof ArgumentEntry ) + { + m_renamer.markArgumentAsDeobfuscated( (ArgumentEntry)obfEntry ); + } + else + { + throw new Error( "Unknown entry type: " + obfEntry ); + } + } } -- cgit v1.2.3