diff options
| author | 2014-10-02 22:18:23 -0400 | |
|---|---|---|
| committer | 2014-10-02 22:18:23 -0400 | |
| commit | 42e3b23f03a98a81ce7238bda96c4f046eab30be (patch) | |
| tree | 6593c9c00b70940b3444301f105f7a917b2d29d8 /src/cuchaz/enigma/Deobfuscator.java | |
| parent | fix inner classes test (diff) | |
| download | enigma-fork-42e3b23f03a98a81ce7238bda96c4f046eab30be.tar.gz enigma-fork-42e3b23f03a98a81ce7238bda96c4f046eab30be.tar.xz enigma-fork-42e3b23f03a98a81ce7238bda96c4f046eab30be.zip | |
fixed issue with decompiling inner classes
Diffstat (limited to 'src/cuchaz/enigma/Deobfuscator.java')
| -rw-r--r-- | src/cuchaz/enigma/Deobfuscator.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index 7e0f092..82c786c 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java | |||
| @@ -127,11 +127,13 @@ public class Deobfuscator | |||
| 127 | Map<String,String> renames = Maps.newHashMap(); | 127 | Map<String,String> renames = Maps.newHashMap(); |
| 128 | for( ClassMapping classMapping : val.classes() ) | 128 | for( ClassMapping classMapping : val.classes() ) |
| 129 | { | 129 | { |
| 130 | String outerClassName = m_jarIndex.getOuterClass( classMapping.getObfName() ); | 130 | // make sure we strip the packages off of obfuscated inner classes |
| 131 | String innerClassName = new ClassEntry( classMapping.getObfName() ).getSimpleName(); | ||
| 132 | String outerClassName = m_jarIndex.getOuterClass( innerClassName ); | ||
| 131 | if( outerClassName != null ) | 133 | if( outerClassName != null ) |
| 132 | { | 134 | { |
| 133 | // build the composite class name | 135 | // build the composite class name |
| 134 | String newName = outerClassName + "$" + new ClassEntry( classMapping.getObfName() ).getSimpleName(); | 136 | String newName = outerClassName + "$" + innerClassName; |
| 135 | 137 | ||
| 136 | // add a rename | 138 | // add a rename |
| 137 | renames.put( classMapping.getObfName(), newName ); | 139 | renames.put( classMapping.getObfName(), newName ); |
| @@ -217,7 +219,7 @@ public class Deobfuscator | |||
| 217 | { | 219 | { |
| 218 | // check the class | 220 | // check the class |
| 219 | ClassEntry classEntry = new ClassEntry( classMapping.getObfName() ); | 221 | ClassEntry classEntry = new ClassEntry( classMapping.getObfName() ); |
| 220 | String outerClassName = m_jarIndex.getOuterClass( classMapping.getObfName() ); | 222 | String outerClassName = m_jarIndex.getOuterClass( classEntry.getSimpleName() ); |
| 221 | if( outerClassName != null ) | 223 | if( outerClassName != null ) |
| 222 | { | 224 | { |
| 223 | classEntry = new ClassEntry( outerClassName + "$" + classMapping.getObfName() ); | 225 | classEntry = new ClassEntry( outerClassName + "$" + classMapping.getObfName() ); |