
Over the past few months, we’ve given you sneak peeks into some of the new capabilities coming to IDA 9.2. Now it’s time to bring them all together (with unannounced features as well) in the official launch.
This release features more useful output when decompiling Golang binaries, dozens of user interface and workflow refinements, a new type parser based on LLVM’s LibTooling, a refresh of the disassemblers for the v850/rh850 and TriCore microcontrollers, the usual additions of instruction set extensions, and countless quality-of-life improvements.
Below is a summary of the key features, and here is the link to the 9.2 release notes.
Smarter Analysis Across Architectures
IDA 9.2 extends support for a wide range of processors and instruction sets, making embedded and hardware analysis more powerful.
- Improved switch detection for RISC-V and ARM, as well as improved stack pointer tracking for ARM. Read the full blog here.
- Expanded TriCore chipset coverage (tc1x - tc4x), support for recently introduced tc4x (TC1.8) instructions, support for registers with global, user-specifiable values. Read the full blog here.
- More macro instructions for v850/rh850, better handling of relocatable objects for creating FLIRT signatures, support for registers with global, user-specifiable values.
- Support 32-bit SIMD instructions of TMS320 C6 Series.
Clearer, More Accurate Decompilation
Decompiler improvements help you work faster with Go, Windows binaries, and cross-references.
- Tuple types for Golang multi-value returns, producing much cleaner output. Read the full blog here.
- New action: “Show all xref decompilations”, for code and data references inside the decompiler.
Insights Into the Decompiler Pipeline
For the first time, IDA opens a window into the Decompiler’s internals. Read the full blog here.
- New Microcode Viewer reveals the intermediate representation (Hex-Rays Microcode).
- Inspect transformations at every stage.
- Build advanced custom plugins with deeper insight.
Debugger Enhancements
The debugger now offers richer context and more reliable call stacks. Read the full blog here.
- Redesigned Register Subview with automatic pointer dereferencing and color coding for memory types.
- More accurate call stack reconstruction for x64 PE binaries.
Productivity & UI Improvements
We’ve smoothed out day-to-day workflows with a range of quality-of-life updates:
- Jump Anywhere is a new dialog created to simplify quick jumps to locations anywhere in the IDB.
- Unified Location History enables a history stack across multiple widgets. Remember how hitting ESC after jumping from the decompiler to some data item in the disassembler wouldn’t bring you back to the decompiler? That behavior is remedied. If you don’t like it, the new history sharing can disabled globally.
- New Dynamic Xref Graph widget that gives a graphical representation of inter-function relationships (code and data). Replaces the static qwingraph charts with an interactive, OpenGL accelerated version of the same functionality. Read the full blog here.
- New Xref Tree widget that gives a textual representation of inter-function relationships (code and data). It unifies the now-legacy Function Calls and Cross References subviews.
- The ones among you who regularly fire up IDAs during presentations will be delighted to hear that the common Ctrl-+/Ctrl-- shortcuts to increase/decrease font size now work in IDA.
- The type editor under Local Types now supports tab completion.
- Qt6 brings much more stable support for Wayland Linux Desktops.
Under the Hood
- As of this release, IDA is relying on Qt6 for its UI. For plugin authors with UI components this implies (a very limited amount of) porting work. In the meantime, we provided some shims that expose a limited amount of the now-legacy Qt5 API to Plugins using Qt6.
- The Type Parsers inside and outside of IDA have been unified and now rely on LLVM’s LibTooling. The benefits of this simplification will start to show in upcoming releases, so stay tuned.
But wait, there's more...
-
Check out the new, open-source, easy-to-use API available: IDA Domain-API
- Read the article: https://hex-rays.com/blog/introducing-the-ida-domain-api
- Clone the repo: https://github.com/HexRaysSA/
ida-domain
-
And the C++ SDK and IDAPython SDK are now open-source and available!
- Read the article: https://hex-rays.com/blog/
open-sourcing-ida-sdk - Clone the repo: https://github.com/HexRaysSA/ida-sdk
- Read the article: https://hex-rays.com/blog/
_____________________________________________________________________________
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 us a note with your feedback directly to product@hex-rays.com, or post it on Discourse.
Getting the 9.2 update
If you have a perpetual license in active support, and you have note requested a trial before, you can download a trial version of IDA 9.2.
To start using IDA 9.2 today you can access the installer in our new customer portal, My Hex-Rays.
There you can request a license key for your free subscription. Please note that the license key for your free IDA 9.2 subscription will expire at the end of your active support period. You can find detailed instructions on how to upgrade to the IDA 9 series here.
Support plan expired? No problem. You can purchase an updated license online here. You’ll see we’ve updated our product packages. If your previous plan doesn’t align with our new offerings, fear not, we’re here to help. We’ve been working with all our customers to ensure they get a plan that is the right fit (and price) for them. Just email us at sales@hex-rays.com.