Skip to content

IDA Domain API

The IDA Domain API provides a Domain Model on top of the IDA Python SDK.

This API will not replace the current low level IDA Python SDK, but will progressively increase in coverage to become the main entry point for IDA scripting & plugin development.

🚀 Key Features

  • Pure Python implementation - No compilation required, works with any Python 3.9+
  • Domain-driven design - APIs mirror how reverse engineers think about binaries
  • Compatibility - The Domain API is fully compatible and can be used alongside with the IDA Python SDK
  • Comprehensive coverage - Functions, strings, types, cross-references, and more
  • Easy installation - Single pip install command

⚙️ Quick Example

import argparse

from ida_domain import Database

parser = argparse.ArgumentParser(description='Quick Usage Example')
parser.add_argument('-f', '--input-file', type=str, required=True)
args = parser.parse_args()

# Open any binary format IDA supports
with Database() as db:
    if db.open(args.input_file):
        # Pythonic iteration over functions
        for func in db.functions.get_all():
            print(f'{func.name}: {len(list(db.functions.get_instructions(func)))} instructions')

📖 Documentation

🔗 Additional Resources