From 6e9934a442394a9d0a81404c7480b8001939d92b Mon Sep 17 00:00:00 2001 From: Thog Date: Wed, 24 Aug 2016 01:59:26 +0200 Subject: Add mapping converter to command line system --- src/main/java/cuchaz/enigma/mapping/Mappings.java | 12 ++++++++++++ src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java | 9 +++++---- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src/main/java/cuchaz/enigma/mapping') diff --git a/src/main/java/cuchaz/enigma/mapping/Mappings.java b/src/main/java/cuchaz/enigma/mapping/Mappings.java index 171ddf1..47c4232 100644 --- a/src/main/java/cuchaz/enigma/mapping/Mappings.java +++ b/src/main/java/cuchaz/enigma/mapping/Mappings.java @@ -13,6 +13,8 @@ package cuchaz.enigma.mapping; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -202,6 +204,16 @@ public class Mappings { return originMapping; } + public void saveEnigmaMappings(File file, boolean isDirectoryFormat) throws IOException + { + new MappingsEnigmaWriter().write(file, this, isDirectoryFormat); + } + + public void saveSRGMappings(File file) throws IOException + { + new MappingsSRGWriter().write(file, this); + } + public enum FormatType { ENIGMA_FILE, ENIGMA_DIRECTORY, SRG_FILE diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java index a05b915..cede1c2 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java @@ -2,6 +2,7 @@ package cuchaz.enigma.mapping; import com.google.common.base.Charsets; import cuchaz.enigma.Deobfuscator; +import cuchaz.enigma.analysis.TranslationIndex; import java.io.*; import java.util.ArrayList; @@ -13,13 +14,13 @@ import java.util.List; */ public class MappingsSRGWriter { - public void write(File file, Deobfuscator deobfuscator) throws IOException { + public void write(File file, Mappings mappings) throws IOException { if(file.exists()){ file.delete(); } file.createNewFile(); - Mappings mappings = deobfuscator.getMappings(); + TranslationIndex index = new TranslationIndex(); PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), Charsets.UTF_8)); List fieldMappings = new ArrayList<>(); @@ -43,7 +44,7 @@ public class MappingsSRGWriter { } for (MethodMapping methodMapping : sorted(innerClassMapping.methods())) { - methodMappings.add("MD: " + innerClassName + "/" + methodMapping.getObfName() + " " + methodMapping.getObfSignature().toString().replace("none/", "") + " " + innerDebofClassName + "/" + methodMapping.getDeobfName() + " " + deobfuscator.getTranslator(TranslationDirection.Deobfuscating).translateSignature(methodMapping.getObfSignature())); + methodMappings.add("MD: " + innerClassName + "/" + methodMapping.getObfName() + " " + methodMapping.getObfSignature().toString().replace("none/", "") + " " + innerDebofClassName + "/" + methodMapping.getDeobfName() + " " + mappings.getTranslator(TranslationDirection.Deobfuscating, index).translateSignature(methodMapping.getObfSignature())); } } @@ -52,7 +53,7 @@ public class MappingsSRGWriter { } for (MethodMapping methodMapping : sorted(classMapping.methods())) { - methodMappings.add("MD: " + classMapping.getObfFullName().replace("none/", "") + "/" + methodMapping.getObfName() + " " + methodMapping.getObfSignature().toString().replace("none/", "") + " " + classMapping.getDeobfName() + "/" + methodMapping.getDeobfName() + " " + deobfuscator.getTranslator(TranslationDirection.Deobfuscating).translateSignature(methodMapping.getObfSignature())); + methodMappings.add("MD: " + classMapping.getObfFullName().replace("none/", "") + "/" + methodMapping.getObfName() + " " + methodMapping.getObfSignature().toString().replace("none/", "") + " " + classMapping.getDeobfName() + "/" + methodMapping.getDeobfName() + " " + mappings.getTranslator(TranslationDirection.Deobfuscating, index).translateSignature(methodMapping.getObfSignature())); } } for(String fd : fieldMappings){ -- cgit v1.2.3