java-deobfuscator / deobfuscator

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

Deobfuscator cannot load native libs #916

Open al4sk4s opened 2 years ago

al4sk4s commented 2 years ago

Thread-6] INFO com.javadeobfuscator.deobfuscator.Deobfuscator - Running com.javadeobfuscator.deobfuscator.transformers.zelix.string.SimpleStringEncryptionTransformer

Deobfuscation failed. Please open a ticket on GitHub and provide the following error: com.javadeobfuscator.javavm.exceptions.ExecutionException: UnsatisfiedLinkError: java/lang/ClassLoader$NativeLibrary load(Ljava/lang/String;ZZ)V at com.javadeobfuscator.javavm.VirtualMachine.execute(VirtualMachine.java:1209) 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.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.VirtualMachine.fullInitialization(VirtualMachine.java:140) at com.javadeobfuscator.deobfuscator.utils.TransformerHelper.newVirtualMachine(TransformerHelper.java:270) at com.javadeobfuscator.deobfuscator.transformers.zelix.string.SimpleStringEncryptionTransformer.transform(SimpleStringEncryptionTransformer.java:74) at com.javadeobfuscator.deobfuscator.Deobfuscator.runFromConfig(Deobfuscator.java:478) at com.javadeobfuscator.deobfuscator.Deobfuscator.start(Deobfuscator.java:435) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.javadeobfuscator.deobfuscator.ui.wrap.Deobfuscator.run(Deobfuscator.java:84) at com.javadeobfuscator.deobfuscator.ui.SwingWindow.lambda$null$17(SwingWindow.java:1009) at java.lang.Thread.run(Unknown Source) Suppressed: com.javadeobfuscator.javavm.exceptions.ConvertedException: java.lang.Throwable: null at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at java.lang.System.initializeSystemClass(Unknown Source)

Janmm14 commented 2 years ago

It seems like the jar you have attempts to load native code. Maybe you got a sample obfuscated for example with JNIC? This cannot be deobfuscated with java-deobfuscator or any other tool off-the-shelf.

greenozon commented 2 years ago

@al4sk4s does your target use JavaFX? I've seen recently that jfxrt.jar refers to 2 native dlls: javafx_iio.dll and javafx_font.dll maybe it's all about it?

greenozon commented 2 years ago

Above dlls are not final set, here are all... image

Janmm14 commented 2 years ago

In this case I'd suggest trying to use zelix StringTransformer which does not have "string. in name, maybe it can better ignore such an error.