summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jeff2014-08-06 22:18:12 -0400
committerGravatar jeff2014-08-06 22:18:12 -0400
commit75d462daee9c24e19e28b4e969f92ae83a026e7b (patch)
tree6fb4131f9484d13648e9f75133778fe3b745ef68
parentadded copyright (diff)
downloadenigma-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.java15
-rw-r--r--src/cuchaz/enigma/gui/ClassInheritanceTreeNode.java29
-rw-r--r--src/cuchaz/enigma/gui/Gui.java2
-rw-r--r--src/cuchaz/enigma/gui/GuiController.java8
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;
17import com.beust.jcommander.internal.Lists; 17import com.beust.jcommander.internal.Lists;
18 18
19import cuchaz.enigma.mapping.Ancestries; 19import cuchaz.enigma.mapping.Ancestries;
20import cuchaz.enigma.mapping.Translator;
20 21
21public class ClassInheritanceTreeNode extends DefaultMutableTreeNode 22public 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;
31import cuchaz.enigma.mapping.EntryPair; 31import cuchaz.enigma.mapping.EntryPair;
32import cuchaz.enigma.mapping.MappingsReader; 32import cuchaz.enigma.mapping.MappingsReader;
33import cuchaz.enigma.mapping.MappingsWriter; 33import cuchaz.enigma.mapping.MappingsWriter;
34import cuchaz.enigma.mapping.TranslationDirection;
35import cuchaz.enigma.mapping.Translator;
34 36
35public class GuiController 37public 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 }