Releases: jindrapetrik/jpexs-decompiler
(PREVIEW) version 25.1.3 nightly 3483
Prerelease WARNING
This is prerelease nightly version. It should NOT be considered as stable.
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new since last stable version:
Features
- redesigned loop detector (#2542)
- move file exports to separate submenu to make menu shorter
- XAML export (#2674)
- bigger toolbar icon for search memory tool
- move import to file tab, use bulk import term
- create tag from file on toolbar, group items on context menu
- export all four states of a button (#2671)
- combined button SVG export using all states
- do not reset position on selection of same timelined (#2670)
- scroll object to visible on placeobject selection
- as3 fla export - option to disable scripts layer (#2673)
- add text tag type conversion (#2383)
- add XBT texture support for GFX external images (#251)
- add advanced multi sample anti-aliased shape renderer
- SVG import: allow larger edges by splitting them in the half
Bug Fixes
- debugger: read watched variables
- scripts folder not visible on show empty folders setting (#2656)
- do not show cookies folder in "show empty folders"
- visitable variable action item
- direct edit properties with getters/setters (#2655)
- font normalizer axis flip (#2657)
- as1/2 maintain push order, temp variables usage
- font normalizer uses 1024em (#2661)
- null pointer on null caret in variable marker
- push commands in as2 left in code (#2654)
- deadlock on getcharacters vs drawframe (#2492)
- nullpointer on as3 deobfuscation
- as3 deobfuscation - null values instead of registers (#2568, #2665)
- stackoverflow on circular importassets (#2666)
- allow add breakpoints on large classes (#2672)
- unable to reset JNA temp directory (#2675)
- svg shape export - use proper winding
- properly normalize fonts in defineedittexts, kerning
- properly draw edittext border, normalize size
- illegal argument exception on creating morphshape from svg (#2676)
- respect nofill argument in shape CLI SVG export (#2681)
- actionscript and/or operators with simple value operands (#2680)
- correct syntax highlighting for texts
- allow float values in font size in DefineEditText
- fix image size off by 1 pixel when conflation fix is on (#2616)
- fix as3 direct edit - protected access (#2686, #2688)
Performance Improvements
version 25.1.3
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- Debugger - Button to disconnect current session (stay listening)
- #2644 Debugger - Button to sort variables alphabetically
- AS3 Direct editation - Error when accessing inaccessible namespace
- AS3 ambiguous namespace detection (back again)
- #2648 Dockerfile
- SVG export - Gradient bevel filter, Gradient glow filter
Fixed
- #2643 APNG export - images containing multiple IDAT chunks
- AS3 direct editation - proper use convert/coerce instruction
- AS3 direct editation - use coerce_f for float values
- #2645 Windows MSI installer - Cannot change install directory
- Long delay before switching critical status bar titles
(Causing many actions to look slow - for example Debug listening) - AS3 goto definition missing some namespaces
- #2514 AS3 direct editation - problems with namespaces
- #2649 SVG export - blur scaling (on supported browsers)
- #2651 Loop breaks detection
- #2653 Check for WEBP availability in CLI
Changed
- Icon of Debug listen action from ear to phone receiver
- #2649 SVG export - using gaussian blur instead of box blur with convolution matrix
(Can be turned off in the settings)
version 25.1.2
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- Debugger - Debugged SWF file name in the session title
- Debugger - Remove watch
- Debugger - List of watches
- Debugger - Show flag of watch type (read/write)
Fixed
- #2639 Export to FLA - missing sound streams
- Debugger - Threading issues with multiple SWFs
- Debugger - Reading variables on 64bit flash players (like in browsers)
- DoInitAction should be ignored when exporting as SWF
Changed
- #2642 Sprite SWF export - do not export as SWF timeline, use DefineSprite tag
and PlaceObject of it
Removed
- (Temporary) AS3 ambiguios namespace detection, it is slow - needs optimizations
version 25.1.1
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Fixed
- #2636 ActionScript - Incorrect always-break detection causing insertion of while(true)
- #2636 ActionScript 3 - Incorrect switch detection
- AS3 property resolving for KIND_NAMESPACE (like builtin for Strings, etc.)
- #2636 ActionScript - switches vs loop breaks
- #2636 ActionScript 3 - type coercion / convert, local registers type propagation
- Using public/private/protected/internal keywords on ambiguous namespace references
and compiling such keywords with::suffix.
version 25.1.0
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- #1209, #1850, #2619 Debugging SWF in the web browser
(Debug listening capability - only for SWFs previously prepared by FFDec) - TTF export - setting italic / bold flags in the font
- ffdec-cli.exe is signed
- #2636 AS3 QName properties with nonvalid identifiers handled as strings in brackets
(Can be turned on in advanced settings)
Fixed
- Metadata formatting
- #2632 TTF export - non-zero italic angle
- Improper standalone player termination, not cleaning temp files
- #2636 ActionScript - Incorrect always-break detection causing insertion of while(true)
- ActionScript - newline after do..while
- StackOverflow on cyclic characters
- ConcurrentModification in abc indexing
version 25.0.0
Downloads:
| Name | File | OS |
|---|---|---|
| MSI Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
Edit: We released repack version of MSI installer due to bugs in some of its language versions (#2631)
What's new:
Added
- #2610 Export morphshapes - export individual frames, setting of morph
duration and/or number of morph frames - Export morphshapes to GIF and AVI
- Animated WEBP export for frames, sprites and morphshapes
- Export dialog - Icons per export type and arrow symbol
- Updated German translation (AI used)
- Slovak translation (AI used)
- APNG (animated PNG) export for frames, sprites and morphshapes
- Context menu association icon
- Windows installer (MSI), ffdec.exe, ffdec.jar and ffdec_lib.jar are signed
- ffdec.exe contains version information (+ on SplashScreen)
Fixed
- #2603 Export Sprite as SWF - sprite frames as timeline frames, without sprite itself
- HTML5 Canvas morphshape export
- Slovenian translation
- #2626 AS1/2 direct editation - function calls inside
withstatement - #2618 AS1/2 increment/decrement/compound using PushDuplicate
- #2611, #2627 StackOverFlow on opening SWF containing cyclic sprites
Changed
- #2610 Export as SWF - take SWF bounds from the exported item bounds
- MSI installer instead of setup.exe on Windows
version 24.1.2
Downloads:
| Name | File | OS |
|---|---|---|
| Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- #2581 Save as SWC through context menu of SWF files (previously only in CLI)
- Save as EXE through context menu of SWF files (previously only in toolbar)
- Slovenian translation
- SVG export - video frames
- #2592, #2154, #2591, #2596 - Better handling of antialias conflation artifacts (by scaling),
can be enabled in Advanced Settings / Display and Export. - #2608 Updated WEBP image library so now it supports macOS x64
- PR228 Association with
.swcextension - Association of file extensions in Windows setup (again)
Fixed
- #2570 NullpointerException on SVG export of DefineEditText
- #2570 ClassCastException on exporting sound head (export all command)
- #2571 SVG export - StackOverflow for DefineVideoStream
- #2575 dumpSWF CLI command displayed import assets GUI dialog
- #2573 AS3 - Incorrect uint/int/Number coercion
- AS3 local registers type propagation
- #2566, #2594 Export bounds of sprites and buttons not containg filter offsets
- #2582 Font normalizer setting small texts when no assigned glyph found
- PDF export - not rendering video stream frames
- #2585 AS1/2 direct editation - continue and break in for..in loop
- #2589 SVG export - subsprite animation, sprite offsets
- #1893 Video - incorrect frame size
- #2572 SVG import - incorrect stroke width when transform contains rotation/shear
- #2595 FLA export - incorrect handling of imported fonts
- FLA export - incorrect handling of imported sprites
- #2586 AS3 direct editation + decompilation - XML escape sequences and other XML problems
- #2600 Sprite/button outline incorrect calculation caused by clipping
- #2612 SVG export - handle incorrect surrogate pairs in text
- #2612 SVG export - problems with retain shape bounds setting
- #2609 JDK 25+ warnings on console about native access
- #2473, #2530 Always-break loops containing breaks (forward gotos)
Changed
- #2575 dumpSWF CLI command only allows single SWF dump (no imports, etc.)
version 24.1.1
Downloads:
| Name | File | OS |
|---|---|---|
| Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- AS3 Document class is underlined and has different icon
- #2556 CLI subsprite animation export (
-sublength <length>option for export) - #2556 CLI option to select arbitrary frames of sprites export via
-select.
Check--help -selectfor details.
Fixed
- #2536 AS3 switches detection incorrectly replaces basic ifs with strict equals
- #2536 AS3 switches detection not handling loops
- #2536 AS3 regexp highlighting / compilation
- #2537 AS1/2/3 direct editation - partial object literal causing lag
- #2540 AS3 getlocal after inclocal with different registers incorrectly merged
- PR224 Font CLI replace throwing NullPointer
- #2546 AS3 findProperty vs temporary registers
- #2547 SVG import - improper linearGradient with userSpaceOnUse gradient units
- #2545 FLA export - normalize font em square
- #2552 Open with FFDec explorer menu shrinking sidebar
- #2551 Showing too wide video tags in Flash player producing ValueTooLarge
exception. Also truncated video length. - #2550 FLV video import - incorrect frame position caused by wrong FLV tag sort
- Mac package problems related to BOM file (updated jbomutils library)
- #2561 Cannot set filter strength to 128 or above
- #2562 ABC explorer not working in some obfuscated code
- #2562 P-code not showing in some obfuscated code (NumberContext related)
Changed
- Simple editor uses percent as units for filter strength
Removed
version 24.1.0
Downloads:
| Name | File | OS |
|---|---|---|
| Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Added
- [#2477] Option to disable AS2 detection of uninitialized class fields
- AS2 detection of uninitialized class fields is cancellable, faster (parallel)
and shows its progress - AS2 - show deobfuscated class/package names in the class tree
- Allow obfuscated DefineEditText variable identifiers
- Selectable text (DefineEditTexts with noselect=0), copy to clipboard, select all
- AS1/2 P-code curly braces pair highlighting
- [#2478] Simple editor - editing texts (not WYSIWYG, textual as in classic editor)
- [#2478] Simple editor - remembering last frame / timeline
- Optional heap memory status widget in the titlebar
- [#2485] Show variable name in the text tree node label
- Deobfuscate identifiers option - non destructible renaming identifiers for display purposes
- Unknown and errored tags moved to special folders
- AS3 docs generator - reorganized to distinguish float and float 4 instructions,
hilight float instruction blue - Icons for every tag type
- [#2499] Information about frames which do not have ShowFrame tag
- [#2504] WebP image format for export/import (not animated)
Limitation: It's not available on Mac x86-64 platform - [#2519] AS1/2 Direct editation + P-code - better handling of "too large"
error messages - highlight actual problematic structure - AS1/2 Debugging - _global variable accessible
- AS Debugging - Variables with flag DontEnumerate are hidden by default
(can be changed in Advanced Settings) - Basic support for PlaceImagePrivate tag
- Generator Templates (.swt) files support and related tags (Flash 3-5)
(CharacterSet, GenCommand, NameCharacter, DefineTextFormat, FontRef) - DefineVideo tag support (Flash 4)
- SerialNumber tag support (before Flash 7)
- FreeCharacter tag support
- SyncFrame tag support
- Hex dump improvements:
- view bit count in SB, UB fields
- view tagIDTagLength field parts
- show type after colon, not in parenthesis
- view bytes length in bytes fields
- [#2526] Option to disable drag & drop from Resources view to avoid problems on Mac OS
- [#2497] AS3 - temp variables for better handling swap/dup instructions
- [#2529], [#2471] Font normalization
- available as context menu command on SWFs
- automatically executed on PDF/SVG export
- shrinks oversized fonts to 1024 em
- fixes vertically flipped fonts / texts
- fixes zero/1unit spaces font glyph advance
- fixes zero last glyph advance in texts
- [PR222] Replace fonts from commandline
- [#2534] Create new GFX tags of type DefineExternalGradient, DefineGradientMap,
ExporterInfo, FontTextureInfo, DefineExternalStreamSound
Fixed
- [#2474] Gotos incorrectly decompiled
- AS1/2/3 highlighter - brackets parsing error causing memory leak / crash
- Comments color highlighting
- AS1/2 Obfuscated registers names not resolving because of trimming
- Escaping HTML in raw tag editor
- Flash player preview not stripping scripts from DefineSprites
- Not clearing selected depth after timelined change
- [#2480] AS1/2 P-code decompilation of try..catch with empty catch body at the end of function
- [#2477] AS1/2 deobfuscation - and/or operators, jumps before function start,
jumps to function end, jumps in for..in return/break - [#2477] AS1/2 Switch in last statement of switch break labels
- [#2338] AS1/2/3 Obfuscated code - jump to jump handling
- [#1277] AS1/2 Propagate break/continue to avoid loop/switch labels
- [#2483] Editing shape gradient records - RGB vs RGBA
- [#2486] AS Loop in loop producing gotos in some cases
- [#2486] AS1/2 Switch after function, problem with labels
- [#2486] AS ifs with direct breaks (in obfuscated code)
- [#2486] AS3 skipping label instruction
- Highlighter nullpointer
- AS3 search slot name Index out of bounds
- AS text search - not being able to cancel search over multiple swf files
- [#2486] AS3 switches detection in some cases
- AS1/2 Hide icons panel when editing
- AS1/2 both pcode and AS editable at the same time
- AS3 direct editation - Allow some special words (like
override) as identifiers - [#2486] AS1/2 if jump to function end as return
- [#2493] Incorrect placement of §§push instructions
- AS3 direct editation/highlighter §§pop in class traits
- AS direct editation/highlighter §§pop and §§dup can have getmember or call
- [#1295], [#116] AS3 dynamic construction via MultinameL
- ABC cleaner not properly fixing namespace sets
- The hex view does not display bytes if there are too few of them
- SymbolClass export/import did not support obfuscated names
- Configuration TOML file encoding (UTF-8)
- [#2496] Fonts - adding characters - truncating too wide advance widths
- [#2498] Public traits with same name were not distinguishable
- [#2503] Exporting sound streams as FLV
- [#2507] FLA export - Button hit test frame placing morphshapes
- [#2507] FLA export - Place characters over multiple button frames
- [#2508] AS1/2 direct editation - first command in for loop header not compiled
- [#2510] AS direct editation - popped value
- [#2511] Allowing to search or to jump from search window while in editation mode
- [#2515] AS1/2 direct editation - getURL incorrect casing, generating ActionGetURL2 when not needed
- AS1/2 actions must use SWF charset when writing its length
- [#2515] AS1/2 Most of built-in global functions must be case in-sensitive
- AS1/2 ActionStringExtract incorrectly decompiled as String.substr instead of substring global function
- [#2516] AS1/2 Renaming of identifiers not setting function length correctly
- AS1/2 Renaming of identifiers must not rename integer array offsets
- [#2517] Loop break detection problems in some cases
- [#2519] AS1/2 avoid multi-level loops in cases where possible
- [#2522] Hex view - resetting view when mouse over panel bottom
- [#2519] AS1/2 direct editation - generating too large ConstantPool
- Hex View - incorrect table height when switching tags
- [#2525] AMF editor (like in Sol cookie editor) - saving empty standard array
[] - AS3 - names with custom namespaces not being deobfuscated
- AS Debugger - order of trace commands
- AS1/2 print/printNum/printAsBitmap/printAsBitmapNum not correctly
handling bmovie boundingBox parameter - Font export - not setting ascent and descent
- [#2471] PDF export - ignore control characters
- [#2471] SVG export with typeface - white-space:pre style
- [#1826], [#2416] FLA export - shapes - missing fills when fillStyle0/1 has incorrect orientation
- [#2532], [#1011], [#2165] FLA export - shapes - missing fills on path crossings, small shapes,
Optimized speed of Shape fixer
Changed
- Icon of "Deobfuscation options" menu from pile of pills to medkit
- Error log window shows last 100 log entries (instead of first 100)
- AS1/2 P-code double Push values have suffix ".0" to properly distinguish them
- AS1/2 P-code float Push values have suffix "f" to properly distinguish them
- AS1/2: Export names are deobfuscated only when start with
__Packages.,
if not, then classical escaping is performed - Quotes in tree node parameter values that need them
- The label of option "automatic deobfuscation" changed to "deobfuscate code"
- SetTabIndex tag moved from others to frames folder
- SWF3 actions split into SWF1, SWF2 and SWF3 actions (in FFDec source code, docs, etc.)
- Serial form of AS3 search results changed so the decompiler is unable to read
saved AS3 search result from older versions and vice-versa - CSMTextSettings tag renamed to CSMSettings
Removed
- Resample wav to 44kHz feature from GUI
version 24.0.1
Downloads:
| Name | File | OS |
|---|---|---|
| Installer (Windows) | ||
| ZIP (Windows, Linux, Mac OS) | ||
| DEB package (Linux) | ||
| Mac OS X Installer (pkg) | ||
| Mac OS X Application (zipped) | ||
| Library only (Java SE) - Zipped | ||
| Library documentation (HTML Javadoc) - Zipped |
What's new:
Fixed
- #2476 Dark interface skins identifiers highlighter visibility