Back

SDK and IDAPython Improvements for Plugin Developers

SDK and IDAPython Improvements for Plugin Developers

The soon to be released IDA 9.3 includes improvements for both plugin developers and IDA users, with updated SDK capabilities and new Lumina API access. These updates simplify building the SDK and IDAPython, while adding direct Lumina API access for plugin functionality.

Here’s what's new and improved

  • The C++ SDK now supports CMake for building, freeing developers from platform-specific requirements like GNU Make, Cygwin, and specific Visual Studio versions on Windows (thanks to Elias Bachaalany, visit his GitHub), though IDAPython still requires the traditional build setup.
  • 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, removing obsolete build components, and reducing required build variables to just the IDA installation path (the traditional Visual Studio and GNU Make requirements remain).
  • The SDK now includes direct Lumina API access via lumina.hpp (C++) and ida_lumina (Python), enabling developers to extract and apply Lumina metadata programmatically from within IDA.
  • Several IDAPython and PySide6 crashes have been resolved, improving overall stability.
  • For improved maintainability, hexrays.hpp is now split into hexrays_defs.hpp, hexrays_micro.hpp, and hexrays_ctree.hpp, with the original hexrays.hpp remaining as a dispatcher to ensure all existing plugins continue to work.

 

Why It Matters

These improvements lower the barrier to entry for C++ plugin development and streamline IDAPython builds. CMake support for the C++ SDK eliminates platform-specific toolchain complexity, while the simplified IDAPython build process removes the need for manually-built SWIG. The new Lumina API opens up metadata functionality that was previously only accessible through IDA's UI, enabling automated workflows and custom analysis tools. Combined with stability fixes and better SDK organization, these updates make development more accessible and expand what's possible with IDA's extensibility.

Most of these improvements came directly from community feedback. The CMake support, IDAPython build simplifications, crash fixes, and header reorganization all address pain points raised by plugin developers over time, reflecting our commitment to making IDA's SDK more accessible based on real-world developer needs.

Where You’ll Find It 

All these updates will be available in the IDA SDK GitHub repository once 9.3 releases. The Lumina API (lumina.hpp and ida_lumina) will also be included in all IDA installations except the Free edition.

Looking Ahead

These updates represent a significant step forward in making IDA's SDK more accessible and powerful for the developer community. We're grateful for the community feedback that shaped these improvements, and again, special thanks to Elias Bachaalany for the CMake contribution.