java-deobfuscator / deobfuscator

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

Stringer v3.1 deobf issue #937

Closed Xed0sS closed 1 year ago

Xed0sS commented 1 year ago

Protected-By: 3.1.3 Stringer (20170802)

Transformer: stringer.v3.HideAccessTransformer (btw stringer.v3_1.StringEncryptionTransformer can't decrypt strings) JAR: https://workupload.com/file/2D4dGNFG5YA

Deobfuscation failed. Please open a ticket on GitHub and provide the following error:
java.lang.NullPointerException
    at com.javadeobfuscator.javavm.mirrors.JavaField.getOop(JavaField.java:105)
    at com.javadeobfuscator.javavm.nativeimpls.java_lang_Class.lambda$registerNatives$21(java_lang_Class.java:349)
    at com.javadeobfuscator.javavm.hooks.HookGenerator.lambda$generateUnknownHandlingHook$2(HookGenerator.java:84)
    at com.javadeobfuscator.javavm.hooks.HookedMethod.execute(HookedMethod.java:84)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1191)
    at com.javadeobfuscator.javavm.instructions.InvokeSpecialInstruction.execute(InvokeSpecialInstruction.java:84)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1196)
    at com.javadeobfuscator.javavm.instructions.InvokeSpecialInstruction.execute(InvokeSpecialInstruction.java:84)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1196)
    at com.javadeobfuscator.javavm.instructions.InvocationInstruction.execute(InvocationInstruction.java:96)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1196)
    at com.javadeobfuscator.javavm.instructions.InvocationInstruction.execute(InvocationInstruction.java:96)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1196)
    at com.javadeobfuscator.javavm.instructions.InvocationInstruction.execute(InvocationInstruction.java:96)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.internalExecute(VirtualMachine.java:1196)
    at com.javadeobfuscator.javavm.instructions.InvocationInstruction.execute(InvocationInstruction.java:96)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1265)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1111)
    at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1052)
    at com.javadeobfuscator.deobfuscator.transformers.stringer.v3.HideAccessTransformer.transform(HideAccessTransformer.java:98)
    at com.javadeobfuscator.deobfuscator.Deobfuscator.runFromConfig(Deobfuscator.java:477)
    at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:434)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.javadeobfuscator.deobfuscator.ui.wrap.Deobfuscator.run(Deobfuscator.java:74)
    at com.javadeobfuscator.deobfuscator.ui.SwingWindow$15$1.run(SwingWindow.java:812)
    at java.lang.Thread.run(Thread.java:748)
    Suppressed: com.javadeobfuscator.javavm.exceptions.ConvertedException: java.lang.Throwable: null
        at java.lang.Class.privateGetDeclaredFields(Class.java)
        at java.lang.Class.getDeclaredFields(Class.java:1916)
        at com.choonster.testmod.bk.y(Unknown Source)
        at com.choonster.testmod.bk.o(Unknown Source)
        at com.choonster.testmod.bk.u(Unknown Source)
        at com.choonster.testmod.e.<clinit>(m)
Janmm14 commented 1 year ago

Use general stringer obfuscation removers instead (those not in subpackages)

Xed0sS commented 1 year ago

I've tried all stringer obfuscation removers - no one doesn't works and can't dec strings...

Janmm14 commented 1 year ago

add jna and jna-platform to your path, use stringer.String (disable method remove and use keep classes), stringer.v3.Invokedyn (will throw some errors but still works partly), allatori.lightflow, allatori.flow, allatori.String (at best also cleanup disabled) to get a bit deobfuscated.

for more: you need to add to path: lwjgl, forge-dev (including deobfed-mc), maybe even more, will still not deobf everything but most should be readable then and then use stringer.HideAccess (with ignore failures option checked, if its checked, log will also tell more about potential problems)

then try to decompile with krakatau. if stuff still is not good, you might need to try different stringer transformers afterwards. i did not try to get forge-dev path jars etc.

Xed0sS commented 1 year ago

Thanks, works perfectly.