GraxCode / zelixkiller

Deobfuscate ZKM up to version 11, replaced by threadtear
GNU General Public License v3.0
67 stars 20 forks source link

JSR/RET are not supported with computeFrames option #6

Closed galaris closed 5 years ago

galaris commented 5 years ago

I tried running zelixkiller from the release page on a jar using the S11 transformation, and I always get the following error: Exception in thread "main" java.lang.RuntimeException: JSR/RET are not supported with computeFrames option

This is both on OSX / Windows, tried java from 5 to latest, nothing seems to work.

./java -jar /Users/user/Desktop/zelixkiller.jar -i /Users/user/Desktop/obfuscated.jar -t s11 -o /Users/user/Desktop/test123.jar

[14:02:54] [INFO   ] Starting with deobfuscation using transformer StringObfuscationT11 
Exception in thread "main" java.lang.RuntimeException: JSR/RET are not supported with computeFrames option
    at org.objectweb.asm.Frame.execute(Frame.java:1178)
    at org.objectweb.asm.MethodWriter.visitJumpInsn(MethodWriter.java:926)
    at org.objectweb.asm.tree.JumpInsnNode.accept(JumpInsnNode.java:88)
    at org.objectweb.asm.tree.InsnList.accept(InsnList.java:162)
    at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:819)
    at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:729)
    at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:452)
    at me.nov.zelixkiller.transformer.zkm11.StringObfuscationT11.createProxy(StringObfuscationT11.java:219)
    at me.nov.zelixkiller.transformer.zkm11.StringObfuscationT11.transform(StringObfuscationT11.java:122)
    at me.nov.zelixkiller.ZelixKiller.main(ZelixKiller.java:107)

Edit: even after compiling the tool the issue remains the same.

ItzSomebody commented 5 years ago

OW2 ASM doesn't support stackmap frame generation when the code region contains JSR and RET instructions in it. Some ways you can work around this:

galaris commented 5 years ago

Thanks for your response. So if I understand correctly, the JAR file I am trying to deobfuscate contains instructions that this tool (or more precisely OW2 ASM) does not support?

ItzSomebody commented 5 years ago

The instructions themselves are supported but not when generating the stackmap frames.