After weeks of feedback and refinement from our beta testers, we are excited to introduce IDA 9.4!
Building on 9.3, this release reworks how IDA handles Apple's Dyld Shared Cache, teaches the decompiler to speak Swift, adds two brand-new processor modules, and reshapes everyday navigation with the new Pathfinder widget and a redesigned Xrefs Graph. There is also a change we are especially happy about for hobbyists: idalib, our headless automation library, now ships with IDA Home.
Below is an overview of the key features and improvements in IDA 9.4. For the complete technical details, be sure to check out the official release notes.
Apple Dyld Shared Cache, Reimagined
IDA 9.4 completely overhauls how it loads and analyzes Apple's Dyld Shared Caches, the bundles that pack the system frameworks on modern macOS and iOS.
- Dedicated widgets and specialized workflows make it far easier to work inside a shared cache, with seamless navigation between its components.
- Analysis is more accurate and more correct, and the loader keeps up with the latest formats, including the dyld shared caches introduced with iOS 27.
- Objective-C reversers benefit from recovered method prototypes and correct handling of the newer libobjcMsgSend selector stubs.
Apple-ecosystem reversers should have a much easier time with the new system. See the DSC workflow documentation for the concepts and workflows.

Swift, Rust, and Go: Deeper High-Level Language Support
The decompiler continues to close the gap between stripped native binaries and the languages they were written in.
- The decompiler and type system now understand the Swift calling convention. New keywords let you declare the self register (
__swiftself), the async context (__swiftasync), and the error path (__swiftthrows), so the pseudocode reads the way the original Swift did, with the confusing register plumbing rewritten as clear intrinsics. On stripped binaries, IDA can now also recover__swiftcall, throwing calls, and spilled arguments on its own. - Rust analysis gains detection of the rustc version and crate list (shown in the header), typed panic locations, and a dedicated Rust calling convention.
- Go analysis improves across the board, with better pclntab discovery for PIE binaries, buildinfo dependency parsing for Go 1.18 and later, cleaner struct types, and more reliable argument and return-type detection.
- Objective-C ARC helpers (the retain and release stubs) are now recognized and can be shown or hidden on demand.
Decompiler Improvements
Beyond the language work, the decompiler gains a batch of output-quality and workflow upgrades.
- New interactive actions: edit a type straight from the pseudocode with
e, add a cast to an expression, collapse code blocks using the chevrons in the margin, and invert an if/else with a single command. - Argument name hints render parameter names right at the call site, so you no longer have to open a prototype to remember what an argument means.
- Strings recovered during decompilation now appear automatically in the Strings list.
- Many readability refinements, including
memcpycalls folded into simple assignments where possible, if-then-else reconstructed from phi merges instead of gotos,fabsand negation recognized from IEEE 754 bit manipulation,true/falseandnullptrused in the right contexts, and a long list of internal-error fixes across architectures.
Expanded Processor and Platform Support
IDA 9.4 widens hardware coverage with two new processor modules and substantial work on existing ones.
- A brand-new Qualcomm Hexagon (QDSP6) module brings Qualcomm DSP firmware into reach, paired with a Qualcomm MBN boot-image loader (SBL and XBL containers, multi-ELF, hash validation). See the Hexagon reference for packet-based execution and ISA coverage.
- A new MCore (CSky V1) module adds stack-pointer tracking, automatic stack-variable creation, and higher-quality disassembly.
- ARM gains full SVE2 and SME disassembly, along with recognition of more switch constructs seen in modern console SDKs.
- TriCore receives full type-system support, a new register finder, better switch-table recognition, and relocation support. RISC-V adds RP2350 (hazard3) extensions, the compressed Zcmp, Zcmt, and Zclsd instructions, and Soteria support. V850 recognizes more switch patterns.
- IDA is now available as a native ARM64 build for Windows-on-ARM.

Loaders and Program Structure
- Functions can now be grouped in the Functions list by the compilation unit they came from, reconstructed from COFF, PSX, OMF, TDS, DWARF, PDB, and Go, mirroring the binary's original source-file layout.
- ELF loading adds compact relative relocations (
DT_RELR) and recognizes Linux kernel modules, adding modinfo to the listing header. Mach-O handling keeps entry-point segments visible when they have no sections and decrypts Apple-protected segments located past the header.
Navigation and UI: Pathfinder, Jump Anywhere, and a Redesigned Xrefs Graph
Navigating a large database gets meaningfully faster in 9.4.
- The new Pathfinder widget (View > Open subviews > Pathfinder,
Shift-F9) gives an answer which every RE wants to know: how does execution get from here to there? It finds call paths between two or more waypoints. Add the function under your cursor withCtrl-Shift-F9, exclude known noise, tune the search, and view the result as a cross-references tree or a path-highlighted Xrefs Graph. Find out what Pathfinder can answer about your binary. - Jump Anywhere is now the default action for the
gshortcut, replacing the classic jump-to-address dialog with a unified, type-ahead navigator: names, expressions likecpu.EIP, function comments, live disassembly, pseudocode, and hex previews, and a jump history. - The Xrefs Graph has been significantly redesigned, with a new graph manager, informative node headers (comments, bookmarks, breakpoints, and missing references), a cleaner layout, and reorganized settings. It can also display and highlight the paths found by Pathfinder.
- A unified Scripts window replaces the old Execute script and Snippets dialogs, with tabs for IDB snippets, recent external scripts, the shipped IDAPython examples, and a search across all three.
- IDB deep links let you share a pointer to an exact location in a database and open it in an already-running IDA, without shipping files around.

Teams, Now on Git
The Teams add-on for IDA Pro can now run on top of a Git server.
- Share IDB files using the Git provider you already use, whether GitHub, GitLab, Bitbucket, or self-hosted, with no server to deploy and no new credentials to issue. Just clone, analyze, commit, and push.
git idaworks in the terminal through an automatically managed global Git configuration, and migration guides are available for teams moving over from Vault. See the Git getting-started guide to set things up.
Debugger Advancements
- The GDB remote backend has been broadly modernized, with more reliable stepping, better handling of misbehaving stubs, library and module discovery on startup, and image-base detection from the TIB.
- RISC-V debugging is now supported through the GDB backend.
- Win32 and WinDbg fixes correct TEB segment labeling and add a PEB segment.
Automation: idalib Comes to IDA Home
Headless automation is no longer a Pro-only capability.
- idalib, the library that lets you drive IDA's full analysis engine from a standalone script with no GUI, now ships with IDA Home and is activated automatically during installation. Home users also get analysis.idc bundled, which enables the
-Bbatch switch. You can see idalib in action here or check out our recent Plugin Contest winner using it here. - A new release of the IDA Domain API (v0.5.0) adds microcode and pseudocode access along with object store and retrieve APIs. See What's new in the IDA Domain API for the details.
- IDAPython now detects Python environments managed by uv, Anaconda, and Homebrew, warns on version mismatches, and exposes the new database indexer that powers Jump Anywhere.
- The SDK gains a large set of new EA-based APIs (covered in the porting guide) and a new
dscu.hheader for programmatic access to the new Dyld Shared Cache infrastructure.
Performance
- Loading large DWARF files is faster and uses less memory.
- Files that add a large number of names, such as Dyld Shared Caches, load faster, and frame analysis has been sped up.
And more ...
For the complete technical details, be sure to check out the official release notes.
Keep us in the loop!
- If you see something, say something. You can report bugs here: https://support.hex-rays.com
- Have ideas on how we can improve IDA? We want to know! Send your feedback directly to product@hex-rays.com, or post it on Discourse.
Getting IDA 9.4
If you have an active IDA license, you will see IDA 9.4 in the Download Center of the My Hex-Rays customer portal.