diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralCleanTransformer.java index eec1def6..9641ccd0 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralCleanTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralCleanTransformer.java @@ -14,7 +14,7 @@ public ComposedGeneralCleanTransformer() { AnnotationCleanTransformer::new, ClassDebugInfoCleanTransformer::new, LineNumberCleanTransformer::new, - MethodDebugInfoCleanTransformer::new, + LocalVariableNamesCleanTransformer::new, NopCleanTransformer::new, StackOperationResolveTransformer::new, TryCatchRepairTransformer::new, diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralRepairTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralRepairTransformer.java index aa094f20..a4acd205 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralRepairTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/general/ComposedGeneralRepairTransformer.java @@ -2,7 +2,7 @@ import uwu.narumi.deobfuscator.api.transformer.ComposedTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.ClassDebugInfoCleanTransformer; -import uwu.narumi.deobfuscator.core.other.impl.clean.MethodDebugInfoCleanTransformer; +import uwu.narumi.deobfuscator.core.other.impl.clean.LocalVariableNamesCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.SignatureCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.UnknownAttributeCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.universal.AccessRepairTransformer; @@ -18,7 +18,7 @@ public ComposedGeneralRepairTransformer() { TryCatchRepairTransformer::new, UnknownAttributeCleanTransformer::new, SignatureCleanTransformer::new, - MethodDebugInfoCleanTransformer::new, + LocalVariableNamesCleanTransformer::new, ClassDebugInfoCleanTransformer::new ); } diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/InvalidMethodCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/InvalidMethodCleanTransformer.java index 7be478a2..573cb982 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/InvalidMethodCleanTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/InvalidMethodCleanTransformer.java @@ -9,7 +9,7 @@ import uwu.narumi.deobfuscator.api.transformer.Transformer; /** - * Remove invalid methods. WARNING: If some transformer will produce invalid bytecode in methods, this transformer will remove them. + * Remove invalid methods. WARNING: If some transformer produces invalid bytecode in methods, this transformer will remove them. */ public class InvalidMethodCleanTransformer extends Transformer { diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/JunkClassCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/JunkClassCleanTransformer.java deleted file mode 100644 index a8ce3ce0..00000000 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/JunkClassCleanTransformer.java +++ /dev/null @@ -1,13 +0,0 @@ -package uwu.narumi.deobfuscator.core.other.impl.clean; - -import uwu.narumi.deobfuscator.api.asm.ClassWrapper; -import uwu.narumi.deobfuscator.api.context.Context; -import uwu.narumi.deobfuscator.api.transformer.Transformer; - -public class JunkClassCleanTransformer extends Transformer { - - @Override - protected void transform(ClassWrapper scope, Context context) throws Exception { - throw new UnsupportedOperationException("TODO"); - } -} diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/LocalVariableNamesCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/LocalVariableNamesCleanTransformer.java new file mode 100644 index 00000000..59845383 --- /dev/null +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/LocalVariableNamesCleanTransformer.java @@ -0,0 +1,21 @@ +package uwu.narumi.deobfuscator.core.other.impl.clean; + +import uwu.narumi.deobfuscator.api.asm.ClassWrapper; +import uwu.narumi.deobfuscator.api.context.Context; +import uwu.narumi.deobfuscator.api.transformer.Transformer; + +/** + * Removes local variable names. + */ +public class LocalVariableNamesCleanTransformer extends Transformer { + + @Override + protected void transform(ClassWrapper scope, Context context) throws Exception { + context.classes(scope).stream() + .flatMap(classWrapper -> classWrapper.methods().stream()) + .forEach(methodNode -> { + methodNode.localVariables = null; + this.markChange(); + }); + } +} diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/MethodDebugInfoCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/MethodDebugInfoCleanTransformer.java index 35c3d0bb..5992606c 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/MethodDebugInfoCleanTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/MethodDebugInfoCleanTransformer.java @@ -1,22 +1,13 @@ package uwu.narumi.deobfuscator.core.other.impl.clean; -import uwu.narumi.deobfuscator.api.asm.ClassWrapper; -import uwu.narumi.deobfuscator.api.context.Context; -import uwu.narumi.deobfuscator.api.transformer.Transformer; - -public class MethodDebugInfoCleanTransformer extends Transformer { - - - @Override - protected void transform(ClassWrapper scope, Context context) throws Exception { - context.classes(scope).stream() - .flatMap(classWrapper -> classWrapper.methods().stream()) - .forEach( - methodNode -> { - methodNode.parameters = null; - methodNode.localVariables = null; - methodNode.exceptions = null; - this.markChange(); - }); +import uwu.narumi.deobfuscator.api.transformer.ComposedTransformer; + +public class MethodDebugInfoCleanTransformer extends ComposedTransformer { + public MethodDebugInfoCleanTransformer() { + super( + LocalVariableNamesCleanTransformer::new, + ParametersInfoCleanTransformer::new, + ThrowsExceptionCleanTransformer::new + ); } } diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ParametersInfoCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ParametersInfoCleanTransformer.java new file mode 100644 index 00000000..7338125d --- /dev/null +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ParametersInfoCleanTransformer.java @@ -0,0 +1,20 @@ +package uwu.narumi.deobfuscator.core.other.impl.clean; + +import uwu.narumi.deobfuscator.api.asm.ClassWrapper; +import uwu.narumi.deobfuscator.api.context.Context; +import uwu.narumi.deobfuscator.api.transformer.Transformer; + +/** + * Removes parameter info from methods + */ +public class ParametersInfoCleanTransformer extends Transformer { + @Override + protected void transform(ClassWrapper scope, Context context) throws Exception { + context.classes(scope).stream() + .flatMap(classWrapper -> classWrapper.methods().stream()) + .forEach(methodNode -> { + methodNode.parameters = null; + this.markChange(); + }); + } +} diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/PeepholeCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/PeepholeCleanTransformer.java index 93245989..10fb16be 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/PeepholeCleanTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/PeepholeCleanTransformer.java @@ -22,7 +22,7 @@ public PeepholeCleanTransformer() { UnUsedLabelCleanTransformer::new, UselessGotosCleanTransformer::new, - // Pop ununsed local variables stores + // Pop unused local variables stores PopUnUsedLocalVariablesTransformer::new, // Remove useless POP instructions. This also cleans up garbage var stores from the PopUnUsedLocalVariablesTransformer UselessPopCleanTransformer::new diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ThrowsExceptionCleanTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ThrowsExceptionCleanTransformer.java new file mode 100644 index 00000000..47809b55 --- /dev/null +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/clean/ThrowsExceptionCleanTransformer.java @@ -0,0 +1,20 @@ +package uwu.narumi.deobfuscator.core.other.impl.clean; + +import uwu.narumi.deobfuscator.api.asm.ClassWrapper; +import uwu.narumi.deobfuscator.api.context.Context; +import uwu.narumi.deobfuscator.api.transformer.Transformer; + +/** + * Removes "throws Exception" from methods. + */ +public class ThrowsExceptionCleanTransformer extends Transformer { + @Override + protected void transform(ClassWrapper scope, Context context) throws Exception { + context.classes(scope).stream() + .flatMap(classWrapper -> classWrapper.methods().stream()) + .forEach(methodNode -> { + methodNode.exceptions = null; + this.markChange(); + }); + } +} diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/universal/StackOperationResolveTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/universal/StackOperationResolveTransformer.java deleted file mode 100644 index c111aea9..00000000 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/universal/StackOperationResolveTransformer.java +++ /dev/null @@ -1,13 +0,0 @@ -package uwu.narumi.deobfuscator.core.other.impl.universal; - -import uwu.narumi.deobfuscator.api.asm.ClassWrapper; -import uwu.narumi.deobfuscator.api.context.Context; -import uwu.narumi.deobfuscator.api.transformer.Transformer; - -public class StackOperationResolveTransformer extends Transformer { - - @Override - protected void transform(ClassWrapper scope, Context context) throws Exception { - throw new UnsupportedOperationException("TODO"); - } -}