summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/Deobfuscator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/Deobfuscator.java')
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index bdd8873..ccd099c 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}