diff options
| author | 2014-08-06 22:18:12 -0400 | |
|---|---|---|
| committer | 2014-08-06 22:18:12 -0400 | |
| commit | 75d462daee9c24e19e28b4e969f92ae83a026e7b (patch) | |
| tree | 6fb4131f9484d13648e9f75133778fe3b745ef68 | |
| parent | added copyright (diff) | |
| download | enigma-fork-75d462daee9c24e19e28b4e969f92ae83a026e7b.tar.gz enigma-fork-75d462daee9c24e19e28b4e969f92ae83a026e7b.tar.xz enigma-fork-75d462daee9c24e19e28b4e969f92ae83a026e7b.zip | |
show deobfuscated names in class inheritance
| -rw-r--r-- | src/cuchaz/enigma/Deobfuscator.java | 15 | ||||
| -rw-r--r-- | src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java | 29 | ||||
| -rw-r--r-- | src/cuchaz/enigma/gui/Gui.java | 2 | ||||
| -rw-r--r-- | src/cuchaz/enigma/gui/GuiController.java | 8 |
4 files changed, 38 insertions, 16 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index 65e618a..2fceef1 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java | |||
| @@ -100,11 +100,16 @@ public class Deobfuscator | |||
| 100 | // update decompiler options | 100 | // update decompiler options |
| 101 | m_settings.setTypeLoader( new TranslatingTypeLoader( | 101 | m_settings.setTypeLoader( new TranslatingTypeLoader( |
| 102 | m_jar, | 102 | m_jar, |
| 103 | m_mappings.getTranslator( m_ancestries, TranslationDirection.Obfuscating ), | 103 | getTranslator( TranslationDirection.Obfuscating ), |
| 104 | m_mappings.getTranslator( m_ancestries, TranslationDirection.Deobfuscating ) | 104 | getTranslator( TranslationDirection.Deobfuscating ) |
| 105 | ) ); | 105 | ) ); |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | public Translator getTranslator( TranslationDirection direction ) | ||
| 109 | { | ||
| 110 | return m_mappings.getTranslator( m_ancestries, direction ); | ||
| 111 | } | ||
| 112 | |||
| 108 | public void getSeparatedClasses( List<ClassFile> obfClasses, Map<ClassFile,String> deobfClasses ) | 113 | public void getSeparatedClasses( List<ClassFile> obfClasses, Map<ClassFile,String> deobfClasses ) |
| 109 | { | 114 | { |
| 110 | Enumeration<JarEntry> entries = m_jar.entries(); | 115 | Enumeration<JarEntry> entries = m_jar.entries(); |
| @@ -181,7 +186,7 @@ public class Deobfuscator | |||
| 181 | 186 | ||
| 182 | public Entry obfuscateEntry( Entry deobfEntry ) | 187 | public Entry obfuscateEntry( Entry deobfEntry ) |
| 183 | { | 188 | { |
| 184 | Translator translator = m_mappings.getTranslator( m_ancestries, TranslationDirection.Obfuscating ); | 189 | Translator translator = getTranslator( TranslationDirection.Obfuscating ); |
| 185 | if( deobfEntry instanceof ClassEntry ) | 190 | if( deobfEntry instanceof ClassEntry ) |
| 186 | { | 191 | { |
| 187 | return translator.translateEntry( (ClassEntry)deobfEntry ); | 192 | return translator.translateEntry( (ClassEntry)deobfEntry ); |
| @@ -206,7 +211,7 @@ public class Deobfuscator | |||
| 206 | 211 | ||
| 207 | public Entry deobfuscateEntry( Entry obfEntry ) | 212 | public Entry deobfuscateEntry( Entry obfEntry ) |
| 208 | { | 213 | { |
| 209 | Translator translator = m_mappings.getTranslator( m_ancestries, TranslationDirection.Deobfuscating ); | 214 | Translator translator = getTranslator( TranslationDirection.Deobfuscating ); |
| 210 | if( obfEntry instanceof ClassEntry ) | 215 | if( obfEntry instanceof ClassEntry ) |
| 211 | { | 216 | { |
| 212 | return translator.translateEntry( (ClassEntry)obfEntry ); | 217 | return translator.translateEntry( (ClassEntry)obfEntry ); |
| @@ -231,7 +236,7 @@ public class Deobfuscator | |||
| 231 | 236 | ||
| 232 | public boolean hasMapping( Entry obfEntry ) | 237 | public boolean hasMapping( Entry obfEntry ) |
| 233 | { | 238 | { |
| 234 | Translator translator = m_mappings.getTranslator( m_ancestries, TranslationDirection.Deobfuscating ); | 239 | Translator translator = getTranslator( TranslationDirection.Deobfuscating ); |
| 235 | if( obfEntry instanceof ClassEntry ) | 240 | if( obfEntry instanceof ClassEntry ) |
| 236 | { | 241 | { |
| 237 | String deobfName = translator.translate( (ClassEntry)obfEntry ); | 242 | String deobfName = translator.translate( (ClassEntry)obfEntry ); |
diff --git a/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java b/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java index 91000ed..d8e6755 100644 --- a/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java +++ b/src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java | |||
| @@ -17,36 +17,49 @@ import javax.swing.tree.DefaultMutableTreeNode; | |||
| 17 | import com.beust.jcommander.internal.Lists; | 17 | import com.beust.jcommander.internal.Lists; |
| 18 | 18 | ||
| 19 | import cuchaz.enigma.mapping.Ancestries; | 19 | import cuchaz.enigma.mapping.Ancestries; |
| 20 | import cuchaz.enigma.mapping.Translator; | ||
| 20 | 21 | ||
| 21 | public class ClassInheritanceTreeNode extends DefaultMutableTreeNode | 22 | public class ClassInheritanceTreeNode extends DefaultMutableTreeNode |
| 22 | { | 23 | { |
| 23 | private static final long serialVersionUID = 4432367405826178490L; | 24 | private static final long serialVersionUID = 4432367405826178490L; |
| 24 | 25 | ||
| 25 | String m_className; | 26 | private Translator m_deobfuscatingTranslator; |
| 27 | private String m_obfClassName; | ||
| 26 | 28 | ||
| 27 | public ClassInheritanceTreeNode( String className ) | 29 | public ClassInheritanceTreeNode( Translator deobfuscatingTranslator, String obfClassName ) |
| 28 | { | 30 | { |
| 29 | m_className = className; | 31 | m_deobfuscatingTranslator = deobfuscatingTranslator; |
| 32 | m_obfClassName = obfClassName; | ||
| 30 | } | 33 | } |
| 31 | 34 | ||
| 32 | public String getClassName( ) | 35 | public String getObfClassName( ) |
| 33 | { | 36 | { |
| 34 | return m_className; | 37 | return m_obfClassName; |
| 38 | } | ||
| 39 | |||
| 40 | public String getDeobfClassName( ) | ||
| 41 | { | ||
| 42 | return m_deobfuscatingTranslator.translateClass( m_obfClassName ); | ||
| 35 | } | 43 | } |
| 36 | 44 | ||
| 37 | @Override | 45 | @Override |
| 38 | public String toString( ) | 46 | public String toString( ) |
| 39 | { | 47 | { |
| 40 | return m_className; | 48 | String deobfClassName = getDeobfClassName(); |
| 49 | if( deobfClassName != null ) | ||
| 50 | { | ||
| 51 | return deobfClassName; | ||
| 52 | } | ||
| 53 | return m_obfClassName; | ||
| 41 | } | 54 | } |
| 42 | 55 | ||
| 43 | public void load( Ancestries ancestries, boolean recurse ) | 56 | public void load( Ancestries ancestries, boolean recurse ) |
| 44 | { | 57 | { |
| 45 | // get all the child nodes | 58 | // get all the child nodes |
| 46 | List<ClassInheritanceTreeNode> nodes = Lists.newArrayList(); | 59 | List<ClassInheritanceTreeNode> nodes = Lists.newArrayList(); |
| 47 | for( String subclassName : ancestries.getSubclasses( m_className ) ) | 60 | for( String subclassName : ancestries.getSubclasses( m_obfClassName ) ) |
| 48 | { | 61 | { |
| 49 | nodes.add( new ClassInheritanceTreeNode( subclassName ) ); | 62 | nodes.add( new ClassInheritanceTreeNode( m_deobfuscatingTranslator, subclassName ) ); |
| 50 | } | 63 | } |
| 51 | 64 | ||
| 52 | // add then to this node | 65 | // add then to this node |
diff --git a/src/cuchaz/enigma/gui/Gui.java b/src/cuchaz/enigma/gui/Gui.java index 2002a4d..e2ccb7d 100644 --- a/src/cuchaz/enigma/gui/Gui.java +++ b/src/cuchaz/enigma/gui/Gui.java | |||
| @@ -272,7 +272,7 @@ public class Gui | |||
| 272 | ClassInheritanceTreeNode node = (ClassInheritanceTreeNode)m_inheritanceTree.getSelectionPath().getLastPathComponent(); | 272 | ClassInheritanceTreeNode node = (ClassInheritanceTreeNode)m_inheritanceTree.getSelectionPath().getLastPathComponent(); |
| 273 | if( node != null ) | 273 | if( node != null ) |
| 274 | { | 274 | { |
| 275 | m_controller.deobfuscateClass( new ClassFile( node.getClassName() ) ); | 275 | m_controller.deobfuscateClass( new ClassFile( node.getObfClassName() ) ); |
| 276 | } | 276 | } |
| 277 | } | 277 | } |
| 278 | } | 278 | } |
diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index 452632f..7d37feb 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java | |||
| @@ -31,6 +31,8 @@ import cuchaz.enigma.mapping.Entry; | |||
| 31 | import cuchaz.enigma.mapping.EntryPair; | 31 | import cuchaz.enigma.mapping.EntryPair; |
| 32 | import cuchaz.enigma.mapping.MappingsReader; | 32 | import cuchaz.enigma.mapping.MappingsReader; |
| 33 | import cuchaz.enigma.mapping.MappingsWriter; | 33 | import cuchaz.enigma.mapping.MappingsWriter; |
| 34 | import cuchaz.enigma.mapping.TranslationDirection; | ||
| 35 | import cuchaz.enigma.mapping.Translator; | ||
| 34 | 36 | ||
| 35 | public class GuiController | 37 | public class GuiController |
| 36 | { | 38 | { |
| @@ -132,8 +134,10 @@ public class GuiController | |||
| 132 | 134 | ||
| 133 | public ClassInheritanceTreeNode getClassInheritance( ClassEntry classEntry ) | 135 | public ClassInheritanceTreeNode getClassInheritance( ClassEntry classEntry ) |
| 134 | { | 136 | { |
| 137 | Translator deobfuscatingTranslator = m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ); | ||
| 138 | |||
| 135 | // create a node for this class | 139 | // create a node for this class |
| 136 | ClassInheritanceTreeNode thisNode = new ClassInheritanceTreeNode( classEntry.getName() ); | 140 | ClassInheritanceTreeNode thisNode = new ClassInheritanceTreeNode( deobfuscatingTranslator, classEntry.getName() ); |
| 137 | 141 | ||
| 138 | // expand all children recursively | 142 | // expand all children recursively |
| 139 | thisNode.load( m_deobfuscator.getAncestries(), true ); | 143 | thisNode.load( m_deobfuscator.getAncestries(), true ); |
| @@ -143,7 +147,7 @@ public class GuiController | |||
| 143 | for( String superclassName : m_deobfuscator.getAncestries().getAncestry( classEntry.getName() ) ) | 147 | for( String superclassName : m_deobfuscator.getAncestries().getAncestry( classEntry.getName() ) ) |
| 144 | { | 148 | { |
| 145 | // add the parent node | 149 | // add the parent node |
| 146 | ClassInheritanceTreeNode parentNode = new ClassInheritanceTreeNode( superclassName ); | 150 | ClassInheritanceTreeNode parentNode = new ClassInheritanceTreeNode( deobfuscatingTranslator, superclassName ); |
| 147 | parentNode.add( node ); | 151 | parentNode.add( node ); |
| 148 | node = parentNode; | 152 | node = parentNode; |
| 149 | } | 153 | } |