IDA 9.3 Beta
Welcome to the IDA 9.3 Beta Release, and thank you to all our beta testers for joining us! Below are the key highlights and changes introduced in this beta version.
Share your feedback
Spotted a bug or have a suggestion to the IDA 9.3 beta release? Let us know and contribute to IDA evolution through one of the following channels:
Hex-Rays Support (Early access feedback form),
Email: [email protected], or
Slack: Join the discussion in our dedicated beta channel. If you didn’t receive the invitation link, contact us.
What's New in Beta 1
Highlights
Decompiler: New V850 decompiler, microcode manipulation, viewer improvements and more
Type system: Objective-C parser, more Golang types
Teams add-on: Improved Teams UI now fully integrated into IDA, eliminating the need for HVUI
Architecture support: Apple SVE, SME, MTE ARM64 extensions, Andes Andestar V3 NDS32 (not included in Beta 1), improvements to Tricore, ARC, x86/x64, PowerPC, RISC-V, ARM64
Debuggers: Android 14-17 native debugging, Stack view dereferencing
UI: Improved Xref Tree and Xref Graph, along with other performance improvements
FLIRT 2.0 (Beta 1 includes support for ARM64 Windows signatures only)
New Linux ARM64 Installers
Teams add-on
IDA Teams is now merged into stock IDA. Collaborate on reverse engineering projects with your team without launching any external applications.
A New Teams top-level menu: all previously known major functionalities and widgets available from Teams menu.
Easy access to remote files: open files from the Hex-Rays Vault Server directly through the Quick Start dialog.
Discontinued HVUI Application: the standalone HVUI app is no longer included. Its core functionality has been fully integrated into the main IDA interface.

See the Getting Started Guide to get up and running with integrated Teams.
Type System
Objective-C Parser
Example - Input Objective-C header:
Generated type library output:
Create C Header File: Inline Anonymous Types
When exporting types to C header files, IDA creates intermediate anonymous types with hash-based names. The new "Ignore IDA anonymous types" option inlines these types directly into the parent structure, producing cleaner and more portable output.
Before (anonymous types exported separately):
After (anonymous types inlined):
This also handles nested inline structures correctly:
Fixed Struct Support: Complete Import/Export Roundtrip
IDA 9.3 introduces __fixed and __at attributes for structures with explicit field offsets, enabling complete roundtripping of type exporting and importing. Previously, types with explicit offsets (like function stack frames) could be exported to C headers but not re-imported: the offset information was lost. Now IDA headers are fully re-parsable.
New Syntax:
__fixed(size)- Declares a struct with explicit total size__at(offset)- Specifies exact byte offset for a field
Example - Function Stack Frame:
Example - Packed Embedded Structure (unaligned fields):
More Golang Types
Full Package Paths in Type Names: Types now include complete package paths, eliminating ambiguity between identically-named types in different packages:
RTYPE_atomic_Value
RTYPE_sync_atomic_Value
RTYPE_cpu_x86
RTYPE_internal_cpu_x86
RTYPE_sys_Uintreg
RTYPE_runtime_internal_sys_Uintreg
RTYPE_poll_FD
RTYPE_internal_poll_FD
RTYPE_func
RTYPE_PTR_func


Hierarchical Type Library Organization: Types are organized in folders matching Go package paths:


Additional Improvements:
Better FUNCINFO and Go version detection
Replaced internal
BUILTIN_STRINGwith standard GostringtypeMany standard Go types are now properly recognized without the
structprefix:Better handling of return types of anonymous golang functions when parsing DWARF


Architecture Support
Tricore
Improved regfinder for better cross-reference detection and enhanced detection of switch statements.
ARC: Push/Pop Idiom Recognition
Memory store/load operations with auto-increment are now recognized as push/pop instructions, making function prologues and epilogues much easier to understand.
Before (9.2):
After (9.3):
x86/x64
Follow indirect jumps where target is known at analysis time
Fixed MPX hintable NOP handling
PowerPC
Fixed wrong plain offset on
addiinstruction
RISC-V
Fixed endless auto-analysis loop
Enum members now get proper xrefs
ARM64
SVE/SME Instructions for iPhone 17 Kernel
IDA 9.3 can now decode Scalable Vector Extension (SVE) and Scalable Matrix Extension (SME) instructions used in Apple's iPhone 17 kernel:
These instructions were previously shown as raw bytes or undefined opcodes.
Memory Tagging Extension (MTE) Intrinsics
The decompiler now produces clean intrinsic calls for ARM Memory Tagging Extension instructions, replacing inline assembly blocks. MTE is used in iOS 18+ and Android for memory safety.
Before (9.2) - inline assembly:
After (9.3) - clean intrinsics:
Supported MTE Intrinsics:
IRG
__arm_mte_create_random_tag(ptr, mask)
Create random tag
ADDG
__arm_mte_increment_tag(ptr, offset)
Increment tag value
GMI
__arm_mte_exclude_tag(ptr, excluded)
Get excluded tag mask
LDG
__arm_mte_get_tag(ptr)
Load allocation tag
STG
__arm_mte_set_tag(ptr)
Store allocation tag
SUBP
__arm_mte_ptrdiff(a, b)
Pointer difference ignoring tags
ARM64: Decoding of CSSC Instructions
Added decoding for comparison and min/max instructions (SMAX, SMIN, UMAX, UMIN, ABS, CNT, CTZ)
MOV/MOVK Address Construction
Disassembler and decompiler now properly optimize ARM64 address construction patterns using MOV/MOVK/MOVW/MOVT instruction sequences, even if scattered, and produce proper cross references.
Before (9.2):
After (9.3):
Minor
AARCH64 Relocations: Support for MOVW_UABS_G[0-3] with custom reference handlers
iOS PAC Stubs: Improved recognition of
__auth_stubssectionsBTI-enabled PLT: Recognition of Branch Target Identification-enabled ELF PLT stubs
Andes Andestar V3 NDS32
IDA now features a processor module for the Andestar V3 NDS32 architecture.
The Andes AndeStar V3 NDS32 is a patented, 32-bit, RISC-style instruction set architecture (ISA) featuring mixed 16-bit/32-bit instructions for power and code density efficiency. It is most used in a wide range of deeply embedded systems and low-power applications, such as IoT devices, microcontrollers, wearables, storage devices and drones.

Decompiler
V850 Decompiler
IDA 9.3 introduces decompiler support for the Renesas V850 (aka NEC850 aka RH850) architecture, a popular 32-bit RISC processor used extensively in automotive ECUs and industrial applications. It supports both the modern RH850 ABI and the legacy GCC V850 ABI.
Microcode Manipulation
The Microcode Viewer now supports deleting instructions and specifying values for registers and local variables to influence the decompilation process.
Fine Grained Control of Assignment Propagation
Added user-controllable "Forbid assignment propagation" option (available from the context menu).
Value Range Optimization
The analysis of conditionals now includes enhanced value range tracking.
For instance, in a conditional such as (unsigned int)(a2 - 1) <= 5, we can determine that a2 falls within the interval [1, 6].
Real-world example:
The second if statement is now discarded since its condition will always be true.
"Decompile all" now in IDA Home & IDA Pro Essential
Now available in IDA Home & Essential editions
Debuggers
Android 14+ native debugging
The Android debugger now properly handles Android 14 (and more recent) apps. Since PAC is becoming more prevalent also in the Android world, we also added support for properly stepping over protected indirect control flow transfer instructions (RETAA, ...).

Stack View Dereferencing
The debugger stack view now supports automatic dereferencing, matching the functionality previously available only in the register widget. View pointed-to values directly in the stack view during debugging sessions.

User Interface
Faster Dirtree Widgets
We have done a first pass of speed improvements. While IDA 9.2 could at times take a very long time to respond (esp. with large selections), IDA 9.3 will be much more pleasant to work with.
Widgets exposing tabular data should be behaving considerably better with large datasets
Search operations are now much snappier for widgets with huge amounts of entries (100k+)
Sorting & filtering (e.g.,
Ctrl+F) have been improved along the way
Further performance optimizations are planned, so stay tuned!
Xref Tree
The Xref Tree widget introduced in IDA 9.2 has been significantly enhanced. The tree can now leverage the register tracker and decompiler to display known function argument values at call sites, providing immediate insight into the parameters being passed to functions without needing to navigate to each individual call site.

Additional improvements include:
Multi-selection support with standard
ShiftandCtrlmodifiers for batch operationsSearch functionality: press
/to open search, then useF3to jump between matches (only works with data that has already been expanded in the tree)Column management: columns can be reordered and resized, with a context menu on column headers to control which columns are displayed
Action system integration: xref tree actions can now be mapped and customized just like any other IDA GUI action, allowing for personalized keyboard shortcuts and workflow integration
Improved dark theme support on macOS
Xref Graph
This release improves mostly the graph interaction.
Now, you don't need to chase the nodes anymore, as they won't move when the cursor is hovering over them. Additionally, it's now possible to pin the nodes in place so you can always know exactly where they are - just press
Pto do so.Furthermore, in order to keep the graph responsive, we've added a warning that will pop up when the graph's capacity is exceeded. This way, you won't accidentally overload the graph and cause it to slow down. The capacity can be adjusted in the configuration file.
Graph management is now located in a logical place: View → Graphs → Manage... and a lot of tiny improvements done.
Finally, the Xref Graph now supports a dark theme. Your eyes will thank us!


Jump Anywhere Improvements
Faster parallel search for large databases (improved search responsiveness)
Added support for demangled names
Improved search ranking algorithm
Better integration with the "undo" mechanism
Platform-Specific
Linux Wayland: Fixed app icon display, improved docking behavior
macOS: Dark mode toggle in toolbar,
.i64bundle type extension, DockMenu with recent files
General Improvements
System shortcuts for listing start/end navigation (
Ctrl+Home/End)License borrowing calendar selector
Local Types: Removed redundant "Parse declarations" command
Minor
arm: detect objc stubs padding (brk #1 instructions)
ui: output: add possibility to control auto scrolling (registry setting)
ui: output: shift-click to set selections
ui: jumpanywhere: efficient indexer search algorithm
SDK & Build
Simplified build process for developers:
The C++ SDK now supports CMake for building
The IDAPython build process has been simplified to work with SWIG 4.2 and 4.3 from default package managers (apt on Linux, winget on Windows, brew on macOS), eliminating the need for manually-built SWIG
Direct Lumina API access via lumina.hpp (C++) and ida_lumina (Python), enabling devs to extract and apply Lumina metadata programmatically from within IDA.
Other Enhancements:
Added
get_import_entry()public function (for PE files only!)
Hex-Rays SDK: Split
hexrays.hppinto 4 files for better modularity:hexrays.hpp(main header, reduced size)hexrays_ctree.hpp(C tree definitions)hexrays_defs.hpp(definitions and constants)hexrays_micro.hpp(microcode definitions)
idalib
idat -voption for verbose outputPrevent idat from deleting existing IDBs
Allow batch mode for temporary databases
-Scommand line switch enabled for IDA Home
Security & Third Party Dependencies
llvm: update llvm to 21.1.5
z3: update z3 to 4.15.3
pcre: update pcre to 10.47 (fixes CVE-2025-58050)
clp: update to clp 1.17.10 / CoinUtils 2.11.12
libdwarf: update libdwarf to 2.2.0
Known Issues
PySide6 crashes under Python 3.14
Share your feedback
Spotted a bug or have a suggestion to the IDA 9.3 beta release? Let us know and contribute to IDA evolution:
via support (Early access feedback form), or
Last updated
Was this helpful?
