C++ Exceptions Support in the Decompiler
The Decompiler can now emit try/catch blocks. There is now support for the C++ exception scheme in binaries compiled for x64 using Microsoft VC++.
FLIRT Manager Updates
Extensive update includes modernized and extended number of FLIRT signatures available for modern languages like Golang and Rust.
A new plugin (FLIRT Manager) allows easy application of multiple signatures to the database and lets you see which one gives the best results.
Updates for classic compilers (MSVC for Windows, GCC for Linux).
IDA now detects the Rust version of the loaded binary, enabling the automated creation of custom, version-specific FLIRT signatures.
idalib
Headless Processing
Run scripts directly using IDA as a library. Both the C++ and Python APIs can be used from outside IDA to form standalone applications. If configured correctly, you get auto-completion and debugging in your favorite C++/Python IDE.
Now you can pass IDA's command-line arguments to the open_database() function. This allows, for example, processing raw binaries for non-x86 using idalib.
RISC-V Decompiler & Disassembler Extensions
New decompilers targeting 32- and 64-bit RISC-V code (HEXRV and HEXRV64). There is now an extended RISC-V processor module to support T-Head extension instructions (used in Xuantie and Allwinner processors).
zstd Compression
IDA now uses zstd compression in IDB files. The higher compression results in smaller IDBs for faster saving and loading, especially when working with large databases.
This also improves performance when working with remote storage or syncing with version control.
Processor Module Updates
TMS320C6 – The compact (16-bit) encodings from TMS320C66x and TMS320C674x series are now disassembled.
RISC-V & RH850 – Improved switch table recognition, broader relocation handling, and extended register tracking.
TriCore – mfcr/mtcr instructions now use symbolic names for Core Special Function Registers (CSFRs) when known, making code easier to read.
Decompiler Improvements
ARM64 – Now supports ILP32 mode, making decompilation more accurate for systems like Apple’s watchOS.ARM64 – Displaying of symbolic system register names in pseudocode means better, more readable decompilation for OS-level applications.
PPC – Support for EFP (Embedded Floating Point) extension instructions of the Signal Processing Engine (SPE), expanding your analysis capabilities.
RISC-V – Added more intrinsics, reducing the number of __asm fragments in your pseudocode for a cleaner view. The decompiler now also handles Atomic Memory operation (AMO) instructions seamlessly.
IDA Teams
Improvements
IDA Teams versioning functionality can now send and receive small binary delta files instead of whole IDBs, delivering faster version management operations and less network traffic by only sending what has changed.
The delta files can also be stored on the Vault server, keeping down disk usage.
Metadata Descriptors Plugins
ida-plugin.json now offers a standardized entrypoint for plugins allowing authors to follow their own plugin directory structure.
License Flexibility
Licenses are no longer bound to a specific platform. After buying one IDA license, it can be used on all supported platforms (Windows/Linux/macOS).
IDA Teams & Lumina are now add-ons and can be added to any subscription plan.
A custom Hex-Rays licensing server replaces the FlexNet licensing server for floating licenses.
WASM Disassembler
and File Format Loader
The new disassembler for Web Assembly (WASM) supports client-side browser applications.
WASM code is embedded into its own binary file format so we include a file loader that decodes the WASM file format.
IDAPython Improvements
Most IDAPython APIs now have type annotations.
Python virtual environments (venvs) are now supported.
Objects returned in the Python API are properly zero-initialized.
idapyswitch can now be used with read-only IDA installations.
Auto-completion in IDA's CLI now disregards __magic_methods__ and auto-generated SWIG methods.
Auto-completing a method call shows its prototype with type annotations and docstring (if available) in a pop-up hint.
nanoMIPS Decompiler & Support
Both the MIPS disassembler and decompiler now support nanoMIPS instructions.
This is not a simple extension of the MIPS ISA but a completely new encoding of the existing MIPS instructions and addition of new ones, as well as a brand new calling convention.
nanoMIPS support is included in the MIPS decompiler (HEXMIPS), there is no need for an extra license.
UI
Improvements
Modernized look and feel with updated icons, added crosshair effect in minigraph, higher-res fonts, and more.
Replacement functionality for both headers/modules is now located (mostly) in typeinf.hpp / ida_typeinf. A porting guide is available.
It is now possible to specify fixed size for structures and to enable field packing easily.
The function prototype editor (aka Y shortcut on a function name) now can toggle between the classic free-text one-line editor and a new multi-line editor featuring the usual shortcuts and controls.
The basic function prototype editor now indicates invalid prototypes via a red rectangle while typing.
A refreshed set of shortcuts that better matches the modern OS conventions can now be selected instead of the traditional shortcuts.
Unified type storage
(ASMTIL)
Reestablished features to Local Types, such as structure field representation and all type manipulations. New databases only have Local Types by default and Structures and Enums are deprecated.
The new Local Types Widget allows editing structures like the classic Structures widget, or via a free-text editor.
ARM/iOS Improvements
Added support for common Apple-specific instructions and system registers commonly encountered in iOS and macOS software to see fewer instances of undefined bytes breaking disassembly and more understandable code when working with these files.
Debugger Improvements
Added support for recent Android versions and made it more robust when working with apps without debug information. If running on a recent (API28+) Android, IDA will try to guess the variable type automatically. Since in the Dalvik VM the value of a variable cannot be displayed without knowing its type, this boosts the debugging experience significantly.