From 392f63d073f78e0abb488ead6e3f458a7bb0f818 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 28 Aug 2014 00:56:31 -0400 Subject: fixed issue with method signatures in default package repackaged for 0.4.2 beta --- build.gradle | 2 +- readme.txt | 2 +- src/cuchaz/enigma/Constants.java | 2 +- src/cuchaz/enigma/mapping/MappingsReader.java | 30 +++++++++++++++++++++++---- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 6508e982..3cc975db 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ targetCompatibility = 1.7 group = "com.cuchazinteractive" archivesBaseName = "enigma" -version = "0.4.1b" +version = "0.4.2b" sourceSets { diff --git a/readme.txt b/readme.txt index 8e0edaaa..ca4d7a5c 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ -Enigma v0.4.1 beta +Enigma v0.4.2 beta A tool for deobfuscation of Java bytecode Copyright Jeff Martin, 2014 diff --git a/src/cuchaz/enigma/Constants.java b/src/cuchaz/enigma/Constants.java index e407dbd8..c8631429 100644 --- a/src/cuchaz/enigma/Constants.java +++ b/src/cuchaz/enigma/Constants.java @@ -14,7 +14,7 @@ package cuchaz.enigma; public class Constants { public static final String Name = "Enigma"; - public static final String Version = "0.4.1 beta"; + public static final String Version = "0.4.2 beta"; public static final String Url = "http://www.cuchazinteractive.com/enigma"; public static final int MiB = 1024*1024; // 1 mebibyte public static final int KiB = 1024; // 1 kebibyte diff --git a/src/cuchaz/enigma/mapping/MappingsReader.java b/src/cuchaz/enigma/mapping/MappingsReader.java index 5570721f..9f42b42c 100644 --- a/src/cuchaz/enigma/mapping/MappingsReader.java +++ b/src/cuchaz/enigma/mapping/MappingsReader.java @@ -21,6 +21,7 @@ import com.google.common.collect.Queues; import cuchaz.enigma.Constants; import cuchaz.enigma.Util; +import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater; public class MappingsReader { @@ -152,12 +153,12 @@ public class MappingsReader private ClassMapping readClass( Scanner scanner ) { return new ClassMapping( - moveOutOfDefaultPackage( scanner.next(), Constants.NonePackage ), - moveOutOfDefaultPackage( scanner.next(), Constants.NonePackage ) + moveClassOutOfDefaultPackage( scanner.next(), Constants.NonePackage ), + moveClassOutOfDefaultPackage( scanner.next(), Constants.NonePackage ) ); } - private String moveOutOfDefaultPackage( String className, String newPackageName ) + private String moveClassOutOfDefaultPackage( String className, String newPackageName ) { ClassEntry classEntry = new ClassEntry( className ); if( classEntry.isInDefaultPackage() ) @@ -174,6 +175,27 @@ public class MappingsReader private MethodMapping readMethod( Scanner scanner ) { - return new MethodMapping( scanner.next(), scanner.next(), scanner.next(), scanner.next() ); + return new MethodMapping( + scanner.next(), scanner.next(), + moveSignatureOutOfDefaultPackage( scanner.next(), Constants.NonePackage ), + moveSignatureOutOfDefaultPackage( scanner.next(), Constants.NonePackage ) + ); + } + + private String moveSignatureOutOfDefaultPackage( String signature, final String newPackageName ) + { + return SignatureUpdater.update( signature, new ClassNameUpdater( ) + { + @Override + public String update( String className ) + { + ClassEntry classEntry = new ClassEntry( className ); + if( classEntry.isInDefaultPackage() ) + { + return newPackageName + "/" + className; + } + return className; + } + } ); } } -- cgit v1.2.3