JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#2175 Issue with Decompiling a Modified Flash 8 SWF
Author: user Crazyfs
Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: upgraded Help

> What steps will reproduce the problem? Attempted to decompile a large, modified Flash 8 SWF file using FFDec 20.0. Encountered persistent StackOverFlowError. Resolved this by increasing thread count from 16 to 32. Used FFDec 20.1, error ceased, but resulting FLA file is corrupted in Flash CS6. > What is the expected output? What do you see instead? Expected: Successful decompilation into a usable FLA file. Actual: FLA file appears corrupted when opened in Flash CS6. > What version of the product are you using? Is it "nightly build"? Which operating system do you have? FFDec Version: 20.0 and 20.1 (not nightly builds). Operating Systems: Machine 1: Windows 10 Home Edition, AMD R7 5700U processor, 16GB RAM. Machine 2: Windows 10 Ultimate Edition, Intel i7 9750H processor, 32GB RAM. > Please provide any additional information below. If the problem is related to a SWF file, attach it here, otherwise we can't help you. Issue only with the heavily modified game mod SWF, not with the original version. Original SWF decompiles without issues. Additional Question: I would also like to inquire about an issue with FFDec's decompilation process. Specifically, when modifying code, why does the 'for...in' syntax not decompile correctly, requiring replacement with equivalent 'while' statements to function properly? This behavior has been consistent and is puzzling. Could you please provide some insights or solutions regarding this? Finally, I'd like to express my gratitude and respect for your continuous efforts in developing FFDec. Your dedication has enabled my team to fulfill a cherished dream from our childhood. Your work is not only technically impressive but also carries a significant emotional value for us. Thank you for making this possible.
DownloadCRAZYFLASHER7.swf (18,346 KiB)DownloadOriginal SWF.exe (17,887 KiB)
admin
1) I released new nightly version - 2754, try it. 2) In CRAZYFLASHER7.swf file, there are some incorrect character ids assigned to DefineButtonSound tag - In the new nightly, I show this as warning on FLA export - you can determine exactly which tags are affected so you can fix it. But the new FLA export ignores them anyway so it will export correctly. 3) Some of newly added sounds use 320kbps bit rate which is not supported in CS6, but I modified the export to convert it so it will work. 4) 'for (var a in obj)' statements should be properly decompiled without a 'while' - if not, then there is a bug. Please provide sample code if you think this is a bug. 5) The regular 'for (var a=0; a < 10; a++)' will decompile as 'while' because in the bytecode, there is no difference between 'a=0; while(a<10) {a++;}' and a for loop. FFDec cannot distinguish it and thus always shows it as while which is more general. 6) Thank you for your gratitude, it's good to hear that.
State: new→upgraded
user
I wanted to extend my heartfelt thanks for the updated version you provided. We have successfully exported the file and are currently in the midst of testing the new FLA. Your prompt and effective solution has been crucial for our project. Knowing that we have the ability to manually fix potential issues gives us great reassurance. Your dedication and support have made a significant difference to our team. Regarding Point 4: The decompiled code shows an unusual syntax with §each§ and eval("each") in loops. This pattern is also found in the provided game swf file: for(§each§ in this) { this[eval("each")].removeMovieClip(); } Is this an artifact of decompilation or part of the original code? About Point 5: In previous versions (prior to version 19), writing complex loops in SWF through FFDec necessitated using 'while' loops instead of 'for' loops for iterations,seemed unable to correctly recompile 'for' loops into executable code. However, in the current version, FFDec automatically converts 'for' loops into 'while' loops. While this approach is stylistically different from what I'm accustomed to, it has notably improved usability and convenience in the coding process. Thank you for these powerful updates.
admin
Ad 4) The §name§ syntax in FFDec means that "name" should be considered as identifier (variable or member name). Original SWF file is obfuscated and some of variable names were replaced with invalid identifiers. In flash you cannot use 'each' as variable name because it is reserved keyword. In ffdec this is displayed as §each§ or setproperty('each', val) or eval('each') when appropriate. To properly compile it from FLA file, you will need to replace all §names§ with other valid identifiers (+ also matching evals, etc.)
user
I'd like to express my sincere gratitude for your team's continuous work and the recent answers to our queries. The progress in our project is largely due to the advancements you've made with FFDec. It's truly invaluable. However, I 've noticed an issue in the exported FLA files: the 'import assets' feature seems to be malfunctioning, requiring manual reconfiguration of libraries. This might be due to incomplete loading of resources from other imported SWF files during the decompilation process. Given our game's extensive size, even after increasing the setting limits, we still encounter StackOverFlowError issues. While this bug isn't critical due to our need to thoroughly restructure the game's file system, I thought it important to bring to your attention. Thank you once again for your exceptional support and dedication. Best regards