+ update 2020: WARNING - support of the decompiler is now VERY LIMITED. There are no active developers. This means we will NOT develop new features and/or fix most of bugs. We left the tracker running in case somebody from community would like to work on it. Sorry for the inconvenience.
State: new new: Initial state. As long as issue is in this state, the work on the issue has not yet begun. opened: Opened state means developer started working on the issue. Feature/Fix will probably be in the next release. postponed: This means developer is not working on it now, for some reason it cannot be implemented now. Issue may be opened again in the future. upgraded: Issue is in upgraded state when developer made changes to the program and new version was released. closed: This means the user is satisfied with issue results and no more changes are needed. invalid: These issues cannot be solved. ignored: Developer decided to take no action on this issue. returned: Program changes were made but user is not satisfied and returned the issue.
> What steps will reproduce the problem?
First, I decompile the attached SWF file. I make a modification to a script in frame 154
(just to one of the strings) and try to save my changes.
> What is the expected output? What do you see instead?
When I try to save my changes to the actionscript, the compiler gives me the error
"Invalid assignment on line 280". I did not modify any code on line 280. I have attached a
screenshot. The original flash program works fine, so I believe this may be an issue with
ffdec, although I cannot be sure. Is there some blatant mistake I am making?
> What version of the product are you using? Is it "nightly build"? Which operating system
do you have?
I am using ffdec 9.0.0 on a GNU/Linux distribution. I do not believe it is a "nightly
> Please provide any additional information below. If the problem is related to a SWF
file, attach it here, otherwise we can't help you.
I have attached the swf file.
In the P-Code, I see lines such as:
loc29f1:Push "myx" "player" 0.0
Is there anything that should be known about the "loc" syntax? It seems that it refers to
a specific virtual memory address. Thank you for tolerating my ignorance.
These are just labels.
Its some identifier followed by colon on the beginning of the line.
This means that there is jump to this location somewhere else in the code.
These label names must be unique. To achieve this - we generate their names from "loc" +
hex offset of the instructions. You can rename it to any identifier you want (you must
rename all places where its references), but when the code is saved, the actual label name
is not stored in the SWF file, thus it will be renamed to "locxxxx" after save/refresh.
The hex string after "loc" is not important at all - there's no need to handle it somehow
special or try correctly calculate it. If you insert line before the command, the label
will work. It just must be unique in the file, no matter how named.
I think somebody already asked this question in the past - we should definitely put it in