summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar gegy10002018-06-23 15:56:05 +0200
committerGravatar gegy10002018-06-23 15:56:05 +0200
commit236c79260e965d6cd6ca6b4e5a72a8125b132920 (patch)
treee78cd28d94da3a71ad108916d024e0ab40450656
parentResolve all failed tests (diff)
downloadenigma-236c79260e965d6cd6ca6b4e5a72a8125b132920.tar.gz
enigma-236c79260e965d6cd6ca6b4e5a72a8125b132920.tar.xz
enigma-236c79260e965d6cd6ca6b4e5a72a8125b132920.zip
Apply deobfuscated name to transformed classes
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java18
-rw-r--r--src/main/java/cuchaz/enigma/TranslatingTypeLoader.java5
2 files changed, 15 insertions, 8 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index bdd8873f..ccd099c6 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -393,15 +393,21 @@ public class Deobfuscator {
393 393
394 394
395 public void writeJar(File out, ProgressListener progress) { 395 public void writeJar(File out, ProgressListener progress) {
396 transformJar(out, progress, createTypeLoader()::createTransformer); 396 transformJar(out, progress, createTypeLoader()::transformInto);
397 } 397 }
398 398
399 public void protectifyJar(File out, ProgressListener progress) { 399 public void protectifyJar(File out, ProgressListener progress) {
400 transformJar(out, progress, (node, writer) -> node.accept(new ClassProtectifier(Opcodes.ASM5, writer))); 400 transformJar(out, progress, (node, writer) -> {
401 node.accept(new ClassProtectifier(Opcodes.ASM5, writer));
402 return node.name;
403 });
401 } 404 }
402 405
403 public void publifyJar(File out, ProgressListener progress) { 406 public void publifyJar(File out, ProgressListener progress) {
404 transformJar(out, progress, (node, writer) -> node.accept(new ClassPublifier(Opcodes.ASM5, writer))); 407 transformJar(out, progress, (node, writer) -> {
408 node.accept(new ClassPublifier(Opcodes.ASM5, writer));
409 return node.name;
410 });
405 } 411 }
406 412
407 public void transformJar(File out, ProgressListener progress, ClassTransformer transformer) { 413 public void transformJar(File out, ProgressListener progress, ClassTransformer transformer) {
@@ -418,8 +424,8 @@ public class Deobfuscator {
418 424
419 try { 425 try {
420 ClassWriter writer = new ClassWriter(0); 426 ClassWriter writer = new ClassWriter(0);
421 transformer.write(node, writer); 427 String transformedName = transformer.transform(node, writer);
422 outJar.putNextEntry(new JarEntry(node.name.replace('.', '/') + ".class")); 428 outJar.putNextEntry(new JarEntry(transformedName.replace('.', '/') + ".class"));
423 outJar.write(writer.toByteArray()); 429 outJar.write(writer.toByteArray());
424 outJar.closeEntry(); 430 outJar.closeEntry();
425 } catch (Throwable t) { 431 } catch (Throwable t) {
@@ -646,6 +652,6 @@ public class Deobfuscator {
646 } 652 }
647 653
648 public interface ClassTransformer { 654 public interface ClassTransformer {
649 void write(ClassNode node, ClassWriter writer); 655 String transform(ClassNode node, ClassWriter writer);
650 } 656 }
651} 657}
diff --git a/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java b/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
index 3f1ff7a1..34901d52 100644
--- a/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
+++ b/src/main/java/cuchaz/enigma/TranslatingTypeLoader.java
@@ -111,7 +111,7 @@ public class TranslatingTypeLoader implements ITypeLoader {
111 } 111 }
112 112
113 ClassWriter writer = new ClassWriter(0); 113 ClassWriter writer = new ClassWriter(0);
114 createTransformer(node, writer); 114 transformInto(node, writer);
115 115
116 // we have a transformed class! 116 // we have a transformed class!
117 return writer.toByteArray(); 117 return writer.toByteArray();
@@ -145,7 +145,8 @@ public class TranslatingTypeLoader implements ITypeLoader {
145 return classNamesToTry; 145 return classNamesToTry;
146 } 146 }
147 147
148 public void createTransformer(ClassNode node, ClassWriter writer) { 148 public String transformInto(ClassNode node, ClassWriter writer) {
149 node.accept(new TranslationClassVisitor(deobfuscatingTranslator, jarIndex, entryPool, Opcodes.ASM5, writer)); 149 node.accept(new TranslationClassVisitor(deobfuscatingTranslator, jarIndex, entryPool, Opcodes.ASM5, writer));
150 return deobfuscatingTranslator.getTranslatedClass(new ClassEntry(node.name)).getName();
150 } 151 }
151} 152}