From 236c79260e965d6cd6ca6b4e5a72a8125b132920 Mon Sep 17 00:00:00 2001 From: gegy1000 Date: Sat, 23 Jun 2018 15:56:05 +0200 Subject: Apply deobfuscated name to transformed classes --- src/main/java/cuchaz/enigma/Deobfuscator.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main/java/cuchaz/enigma/Deobfuscator.java') 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 { public void writeJar(File out, ProgressListener progress) { - transformJar(out, progress, createTypeLoader()::createTransformer); + transformJar(out, progress, createTypeLoader()::transformInto); } public void protectifyJar(File out, ProgressListener progress) { - transformJar(out, progress, (node, writer) -> node.accept(new ClassProtectifier(Opcodes.ASM5, writer))); + transformJar(out, progress, (node, writer) -> { + node.accept(new ClassProtectifier(Opcodes.ASM5, writer)); + return node.name; + }); } public void publifyJar(File out, ProgressListener progress) { - transformJar(out, progress, (node, writer) -> node.accept(new ClassPublifier(Opcodes.ASM5, writer))); + transformJar(out, progress, (node, writer) -> { + node.accept(new ClassPublifier(Opcodes.ASM5, writer)); + return node.name; + }); } public void transformJar(File out, ProgressListener progress, ClassTransformer transformer) { @@ -418,8 +424,8 @@ public class Deobfuscator { try { ClassWriter writer = new ClassWriter(0); - transformer.write(node, writer); - outJar.putNextEntry(new JarEntry(node.name.replace('.', '/') + ".class")); + String transformedName = transformer.transform(node, writer); + outJar.putNextEntry(new JarEntry(transformedName.replace('.', '/') + ".class")); outJar.write(writer.toByteArray()); outJar.closeEntry(); } catch (Throwable t) { @@ -646,6 +652,6 @@ public class Deobfuscator { } public interface ClassTransformer { - void write(ClassNode node, ClassWriter writer); + String transform(ClassNode node, ClassWriter writer); } } -- cgit v1.2.3