List of issuesList of issues

#956 AS3 decompilation error - Invalid jump
Author: developer honfika
Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: closed Help

> What steps will reproduce the problem? Open vipAug1_mod.swf find the class from exception message. > What is the expected output? What do you see instead? Jul 07, 2015 9:57:31 PM convert SEVERE: Decompilation error in java.util.concurrent.ExecutionException: Invalid jump to ofs2888231 on line -1 at Source) at java.util.concurrent.FutureTask.get(Unknown Source) at com.jpexs.helpers.CancellableWorker.get( at at at at$ at at at at at$ at$ at com.jpexs.helpers.CancellableWorker$3.doInBackground( at com.jpexs.helpers.CancellableWorker$ at Source) at at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$ Source) at Source) Caused by: Invalid jump to ofs2888231 on line -1 at at at ) at at com.jpexs.decompiler.graph.GraphSource.visitCode( at com.jpexs.decompiler.graph.GraphSource.visitCode( at com.jpexs.decompiler.graph.GraphSource.visitCode( at com.jpexs.decompiler.graph.GraphSource.visitCode( at com.jpexs.decompiler.graph.GraphSource.visitCode( at com.jpexs.decompiler.graph.Graph.makeGraph( at com.jpexs.decompiler.graph.Graph.init( at at at$ at$ ... 7 more
In this swf there is a jump to an invalid address. In the following commmit why did you removed the fixJumps call? (//code.fixJumps(body);) 6561d6 When i uncomment that line, it works.
I was doing large testing of the deobfuscation, commented out some parts and then put it back. I left this commented out since all examples I had were working with that config. Now I see we need that part since there can be invalid jumps even in code which is not unreachable. The SWF would probably failed to load that method because of verification. You can put the line back, I am not on my computer now.
I tried to reproduce this problem in run.swf, but it shows: VerifyError: Error #1021: At least one branch target was not on a valid instruction in the method. when the method is called as you said (even when the jump is unreachable). Probably it is the same with vipAug1_mod.swf... so it is broken. The decompilation exception is correct. I'm sorry for the report. So everything is ok now, fixJumps is not needed.
State: new→invalid
The decompilation exception is correct, but it should probably display the rest of the code, just fail somehow gracefully, log warning instead of discarding whole method body. I think the fixJumps should be there somehow... Because when you remove the jump, the code is otherwise correct.
State: invalid→new
Ok, temporary i uncommented that line, now it seems to be ok.
It is in the repository. It displays warning. I placed the fixjumps to correct place - in the convertMethodBody no matter on AutoDeobfuscate switch as it is not deobfuscation thing. Also the fixjumps does not really fix the offsets. It just removes the instructions. It sounds better to me than creating some invalid code flow.
State: new→upgraded
ok, thanks.
State: upgraded→closed
Google Translate: Translate to Czech Translate to Slovak Translate to Russian Translate to Hungarian Translate to Swedish Translate to French Translate to German Translate to Spanish Translate to Italian
Change style: oceanic classic