From 85820c55a665cf68574eaa8553322e58cc5c3a98 Mon Sep 17 00:00:00 2001 From: NebelNidas Date: Sun, 10 Mar 2024 23:15:28 +0100 Subject: [PATCH] Remove JADX repackaging top-level classes workaround --- .../java/matcher/gui/tab/SourcecodeTab.java | 3 +-- src/main/java/matcher/srcprocess/Jadx.java | 1 + .../java/matcher/srcprocess/SrcDecorator.java | 4 ++-- .../java/matcher/srcprocess/TypeResolver.java | 17 ++--------------- 4 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/main/java/matcher/gui/tab/SourcecodeTab.java b/src/main/java/matcher/gui/tab/SourcecodeTab.java index 10713c9a..1c782df3 100644 --- a/src/main/java/matcher/gui/tab/SourcecodeTab.java +++ b/src/main/java/matcher/gui/tab/SourcecodeTab.java @@ -8,7 +8,6 @@ import matcher.gui.Gui; import matcher.gui.ISelectionProvider; import matcher.srcprocess.HtmlUtil; -import matcher.srcprocess.Jadx; import matcher.srcprocess.SrcDecorator; import matcher.srcprocess.SrcDecorator.SrcParseException; import matcher.type.ClassInstance; @@ -89,7 +88,7 @@ private void update() { NameType nameType = gui.getNameType().withUnmatchedTmp(unmatchedTmp); //Gui.runAsyncTask(() -> gui.getEnv().decompile(selectedClass, true)) - Gui.runAsyncTask(() -> SrcDecorator.decorate(gui.getEnv().decompile(gui.getDecompiler().get(), selectedClass, nameType), selectedClass, nameType, gui.getDecompiler().get() instanceof Jadx)) + Gui.runAsyncTask(() -> SrcDecorator.decorate(gui.getEnv().decompile(gui.getDecompiler().get(), selectedClass, nameType), selectedClass, nameType)) .whenComplete((res, exc) -> { if (cDecompId == decompId) { if (exc != null) { diff --git a/src/main/java/matcher/srcprocess/Jadx.java b/src/main/java/matcher/srcprocess/Jadx.java index d0d36b57..7ccc9aa9 100644 --- a/src/main/java/matcher/srcprocess/Jadx.java +++ b/src/main/java/matcher/srcprocess/Jadx.java @@ -68,6 +68,7 @@ public void close() { jadxArgs.setInlineAnonymousClasses(false); jadxArgs.setInlineMethods(false); jadxArgs.setSkipResources(true); + jadxArgs.setRenameValid(false); jadxArgs.setRespectBytecodeAccModifiers(true); jadxArgs.setCommentsLevel(CommentsLevel.INFO); } diff --git a/src/main/java/matcher/srcprocess/SrcDecorator.java b/src/main/java/matcher/srcprocess/SrcDecorator.java index f648c699..f694af43 100644 --- a/src/main/java/matcher/srcprocess/SrcDecorator.java +++ b/src/main/java/matcher/srcprocess/SrcDecorator.java @@ -37,7 +37,7 @@ import matcher.type.MethodVarInstance; public class SrcDecorator { - public static String decorate(String src, ClassInstance cls, NameType nameType, boolean decompiledByJadx) { + public static String decorate(String src, ClassInstance cls, NameType nameType) { String name = cls.getName(nameType); if (cls.getOuterClass() != null && name.contains("$")) { @@ -93,7 +93,7 @@ public static String decorate(String src, ClassInstance cls, NameType nameType, } } - TypeResolver resolver = new TypeResolver(decompiledByJadx); + TypeResolver resolver = new TypeResolver(); resolver.setup(cls, nameType, cu); cu.accept(remapVisitor, resolver); diff --git a/src/main/java/matcher/srcprocess/TypeResolver.java b/src/main/java/matcher/srcprocess/TypeResolver.java index 3253387a..1faeb31a 100644 --- a/src/main/java/matcher/srcprocess/TypeResolver.java +++ b/src/main/java/matcher/srcprocess/TypeResolver.java @@ -32,10 +32,6 @@ import matcher.type.MethodInstance; class TypeResolver { - TypeResolver(boolean decmpiledByJadx) { - this.decompiledByJadx = decmpiledByJadx; - } - public void setup(ClassInstance rootCls, NameType nameType, CompilationUnit cu) { this.rootCls = rootCls; this.env = rootCls.getEnv(); @@ -65,19 +61,11 @@ public void setup(ClassInstance rootCls, NameType nameType, CompilationUnit cu) } } - // TODO: Clean up once you can disable JADX repackaging orphaned classes public ClassInstance getCls(Node node) { StringBuilder sb = new StringBuilder(); - String jadxDefaultPackage = jadx.core.Consts.DEFAULT_PACKAGE_NAME; - - if (pkg != null && (!decompiledByJadx || !pkg.equals(jadxDefaultPackage))) { - String pkgCleaned = pkg; - - if (decompiledByJadx && pkg.startsWith(jadxDefaultPackage)) { - pkgCleaned = pkg.substring(jadxDefaultPackage.length() + 1); - } - sb.append(pkgCleaned); + if (pkg != null) { + sb.append(pkg); sb.append('/'); } @@ -279,5 +267,4 @@ public String getName(Matchable e) { private String pkg; private final Map imports = new HashMap<>(); private final List wildcardImports = new ArrayList<>(); - private final boolean decompiledByJadx; }