IDA C++ SDK 9.4
Loading...
Searching...
No Matches
IDA C++ SDK

Introduction

This is the official reference documentation of the IDA C++ SDK. Use it to build native components that extend IDA: plugins, processor modules, file loaders, and debugger modules, all with full access to IDA's internals.

The C++ SDK is the right choice when you need maximum performance, tight integration with IDA's core, or functionality that is only exposed through the native API. See pro.h for the platform macros and conventions that apply throughout this reference.

What's new in 9.4

IDA 9.4 extends the SDK in several areas. Highlights for C++ developers:

  • Dyld shared cache access — the new dscu.h header provides programmatic access to the overhauled dyld shared cache infrastructure.
  • EA-based APIs — a growing set of address-based methods that avoid IDA-allocated pointers, spanning segments, functions/frames, and decompiler operations (e.g. get_segment_ea_by_num(), tinfo_t::get_func_frame(), get_prev_function_addr() / get_next_function_addr()).
  • New function iteratorsfunction_item_iterator_t, function_parent_iterator_t, and function_tail_iterator_t.
  • Decompiler output hooksoutctx_t::gen_function_header() / gen_function_footer() plus the matching ev_out_function_header / ev_out_function_footer events.
  • User-defined microcodeuser_minsn_t, user_minsn_action_t, minsn_locator_t, and microcode xrefs to registers, stack/local variables, and blocks.
  • New processor and analysis events — including ev_query_unmapped_address, ev_load_unmapped_address, ev_sanitize_name, and the FUNC_OUTLINE flag for marking outlined functions.

For the complete list, see the IDA 9.4 release notes.

Note
Prefer Python? IDA also ships with IDAPython for scripting and plugins, and the higher-level IDA Domain API built on top of it.