java-deobfuscator / deobfuscator

The real deal
https://javadeobfuscator.com
Apache License 2.0
1.57k stars 292 forks source link

Invalid descriptor: (☺/)L☺/ #973

Open siroo2137 opened 1 year ago

siroo2137 commented 1 year ago

full error:

java.lang.IllegalArgumentException: Invalid descriptor: (☺/)L☺/;
        at org.objectweb.asm.Type.getTypeInternal(Type.java:443)
        at org.objectweb.asm.Type.getArgumentTypes(Type.java:331)
        at org.objectweb.asm.commons.Remapper.mapMethodDesc(Remapper.java:139)
        at org.objectweb.asm.commons.ClassRemapper.visitMethod(ClassRemapper.java:185)
        at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:645)
        at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:468)
        at com.javadeobfuscator.deobfuscator.transformers.normalizer.AbstractNormalizer.lambda$transform$0(AbstractNormalizer.java:47)
        at java.util.HashMap$Values.forEach(HashMap.java:982)
        at com.javadeobfuscator.deobfuscator.transformers.normalizer.AbstractNormalizer.transform(AbstractNormalizer.java:42)
        at com.javadeobfuscator.deobfuscator.Deobfuscator.runFromConfig(Deobfuscator.java:477)
        at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:434)
        at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:106)
        at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.run(DeobfuscatorMain.java:99)
        at com.javadeobfuscator.deobfuscator.DeobfuscatorMain.main(DeobfuscatorMain.java:36)

config:

 input: "path"
output: "path"
detect: false
path:
  - rt.jar
transformers:
  - general.removers.IllegalSignatureRemover
  - general.removers.IllegalAnnotationRemover
  - general.peephole.RedundantGotoRemover
  - general.peephole.PeepholeOptimizer
  - normalizer.ClassNormalizer
Janmm14 commented 1 year ago

I would agree that the descriptor in question is invalid. I would also agree the error is missing information about which class contains the invalid descriptor.

Please remove the ClassNormalizer from the transformers. attempt using ProGuard for class renaming instead once you made sure there is no more reflection obfuscation present.