Deobfuscate identifiers for display, old flash tags support, temp variables for swap/dup, WebP image support, icons for tags, and more, in 24.1.x version.
24.1.0 – 2025-09-28
AS2 Detection of Uninitialized Fields Changes
The detection of uninitialized class fields in AS2 is now cancellable, faster (thanks to parallel processing), and can be disabled either in the advanced settings or via the deobfuscation menu.
Obfuscated DefineEditText Variable Identifiers
DefineEditText variable identifiers can now be obfuscated and remain editable without issues.
Selectable Text in DefineEditTexts
Text in displayed DefineEditTexts with the noselect=0 flag can now be selected and copied to the clipboard.

AS1/2 P-code curly braces pair highlighting

Simple Editor – Text Editing
You can now edit text in the Simple Editor. Note that it’s not a WYSIWYG editor as you might expect – it’s the same editor used in the Resources tab.

Simple Editor – Remember Last Frame / Timeline
The last frame and timeline are now preserved when switching to or from the Simple Editor, as well as when exiting the application.
Optional Heap Status Widget in the Title Bar
You can enable a special widget in the title bar that displays memory usage. Clicking the widget will trigger garbage collection.

Deobfuscate Identifiers Option
A new method for deobfuscating ActionScript identifiers is now available. It is non-destructive, renaming identifiers only for display purposes. Each obfuscated variable is shown as _SafeStr_N, and a list of all replaced identifiers is appended at the end of the script. During script editing, this list is used as a translation reference.
The option can be found in the Settings tab as well as in the Deobfuscation menu.

Special Folders for Unknown and Errored Tags
SWF tags with an unknown type identifier are now placed in a separate folder. If an error occurs while reading a tag (typically due to insufficient data length), the tag is placed in the errored folder.
This applies to the Resources view.

Icons for Every Tag Type
Each SWF tag type now has its own icon (except for GFX tags).

Frames Without ShowFrame Info
If the last frame in a Sprite or Main timeline does not end with a ShowFrame tag, it is now indicated by the text “without ShowFrame” in the last frame’s title.

WebP Image Format Support
Export and import now support the WebP image format. Imported images must not be animated.
Note: The WebP format is not available on the macOS x86-64 platform, as the underlying library does not support it.
AS1/2 Improved Handling of “Too Large” Blocks
In AS1/2, there is a limit to how large a code block or jump (e.g., if, while, function) can be. Previously, only a basic error message was displayed when attempting to save a block that exceeded this limit. Now, the specific line containing the problematic block is highlighted—both in ActionScript and in P-code.
AS1/2 Debugging – _global Variable Accessible
The _global variable is now accessible in the AS1/2 debugger.
AS Debugging – Hidden Non-Enumerable
Variables marked with DontEnumerate are now hidden by default. Their visibility can be restored in the advanced settings.
PlaceImagePrivate Tag Support
We added basic support for PlaceImagePrivate tag.
Generator Templates (.swt) Support
Macromedia Generator was software used to create SWF files from SWT templates back in the days of Flash 3, 4, and 5. FFDec now supports the SWT extension and its related tags: CharacterSet, GenCommand, NameCharacter, DefineTextFormat, and FontRef.
DefineVideo Tag Support
The DefineVideo tag, introduced in Flash 4, is now supported. While not very practical, its original purpose was to reference an external QuickTime movie file.
SerialNumber Tag Support
The SerialNumber tag appears to originate from the Flash 5 era, using ID 41. It contains the serial number of Flash Generator. Starting with Flash 7, however, ID 41 was reassigned to the ProductInfo tag, which has a different structure.
FreeCharacter Tag Support
The FreeCharacter tag removes a specific character, preventing it from being used later.
SyncFrame Tag Support
The SyncFrame tag is an internal tag used for display synchronization.
Hex Dump Improvements
Bit counts are now displayed in SB and UB fields. The TagIDTagLength field shows its individual parts. The type is placed after a colon instead of in parentheses, and byte fields now also indicate their length in bytes.
Avoiding Drag & Drop Problems on macOS
An option has been added to disable drag & drop from the Resources view to prevent issues on macOS, where dragging behaves differently in Java 8.
AS3 – Temporary Vars for Swap/Dup Instructions
When a script uses the swap or dup instruction in an unrecognized way, temporary variables are now used instead of generating §§ instructions.

Font Normalization
Some SWFs use nonstandard font storage, such as vertically flipped or oversized fonts. The new FFDec introduces a Font Normalization option in the context menu for SWFs, which restores fonts and text to a standard form—shrinking them back to 1024 em and flipping them correctly. This action is performed automatically during PDF/SVG generation, where proper normalization is required for correct export.

Replace Fonts from Command Line
The CLI command -replace now accepts a font ID and a TTF file to replace the font with. At this time, there is no option to specify character ranges or other parameters.
Create New GFX Tags
DefineExternalGradient, DefineGradientMap, ExporterInfo, FontTextureInfo and DefineExternalStreamSound are available in add tag context menu in GFX files.
Changed: Deobfuscation Menu Icon
Deobfuscation menu has medkit icon instead of pile of pills.

Changed: Error Log Shows Last 100 Items
The Error Log window now displays the last 100 entries instead of the first 100.
Changed: AS1/2 P-code Double/Push Values
AS1/2 P-code double Push values now include a “.0” suffix to properly distinguish them. Similarly, float Push values now have an “f” suffix.
Changed: “Automatic Deobfuscation” Renamed
The term automatic deobfuscation has been renamed to deobfuscate code.
Changed: Serial Form of AS3 Search Results
The serial format of AS3 search results has been updated. As a result, saved AS3 search results from older versions are no longer compatible, and vice versa.
Removed: Resample Sound to 44kHz Feature
The option to resample sound to 44kHz has been removed, as it was not considered very useful.

Leave a Reply