+ 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.
I noticed that when exporting SWF files to XML, ActionScript is not decompiled. For
example, if there is this script in the SWF:
The string, "../../?s=2", appears nowhere in the XML. swfmill outputs this:
<Condition next="0" menuEnter="0" pointerReleaseOutside="0" pointerDragEnter="0"
pointerDragLeave="0" pointerReleaseInside="1" pointerPush="0" pointerLeave="0"
pointerEnter="0" key="0" menuLeave="0">
<GetURL url="../../?s=2" target="_blank"/>
Which I like. I would like FFDec to do something similar. I would use swfmill, but there
is an issue where recompiling this in swfmill causes buttons in the SWF to do nothing, so
I would prefer if FFDec had the same feature. (Also, swfmill hasn't been updated in about
2 years, whereas FFDec seems to be quite active!)
Thanks for reading, and I hope you consider adding this feature; it would be very helpful.
Yes, it would be nice. The problem is that it would work only with non obfuscated swfs,
because AS2 ofbuscators scrambles the actions, sometimes jumps to the middle of an
instruction. So the reconstucted swf will be different from the original. This is why now
only the actionbytes are in the xml.
What is your goal, why do you need this feature?
I would like to automatically replace strings in SWFs in bulk. The way I thought to do it
was to export flashes to xml via the command line, replace the strings in the xml, then
reassemble the swf, but the strings are not directly outputted in the xml. If there's any
other way to do this without using the GUI, please let me know.
With the latest nightly build you can import all as2 scrpts from a folder.
This is the same as the "import script" button in the UI.
So first export the scripts:
ffdec.bat -export script outFolder as2.swf
then replace the strings
ffdec.bat -importScript as2.swf as2_new.swf outFolder
Is this enough for you?