Skip to content

HexRaysSA/ida-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IDA SDK

License: MIT C++11

A Software Development Kit for extending IDA, the state-of-the-art binary code analysis tool. The C++ SDK allows you to build custom plugins, loaders, processors, and scripts that integrate directly into IDA. This project also includes IDAPython SDK allowing you to write plugins using Python.

Documentation

Contributing

The SDK is currently closed to external contributions, as it requires tight integration with our proprietary IDA Pro workflows and follows an internal roadmap with specific architectural decisions.

However, feel free to report bugs or suggest features via Issues.

Requirements

To build:

  • C++ compiler that fully supports C++17 compatible with your platform:
    • GCC or LLVM/Clang (Linux/macOS)
    • Microsoft Visual C++ (MSVC) 2022 or later (Windows)
  • GNU Bash and core utilities
    • Included by default on Linux and macOS
    • On Windows, install via Cygwin — required to provide a Unix-like environment and tools like cygpath, which are needed for proper path translation

NOTE: Required Cygwin packages: bash, coreutils, make, binutils, diffutils, gcc-g++, rsync

Install using Cygwin Installer:

.\setup-x86_64.exe -q -P make,strip,diffutils,binutils,gcc-g++,rsync --site "http://mirrors.kernel.org/sourceware/cygwin/"

The mirror in --site is specified for quiet mode. You can choose another mirror or run the setup GUI once - after that, this will no longer be necessary.

Optional Cygwin packages (needed for IDAPython): zip, unzip, swig

.\setup-x86_64.exe -q -P zip,unzip,swig

To use the SDK:

  • IDA 9.2

Repository fundamentals

  • src/module/ — Processor modules
  • src/ldr/ — Loader modules
  • src/include/ — Core IDA SDK headers
  • src/lib/ — Stub libraries for linking against IDA kernel
  • src/dbg/ — Debugger server integration
  • src/bin/ — Build helpers & binaries
  • src/idalib/ — IDA as a library examples
  • src/plugins/ — Sample plugin modules (including IDAPython)

Getting Started

To install the project on your local machine, refer to the instructions in src/readme.txt. Additional README files in subdirectories provide more details about:

  • Processor module templates
  • Loaders
  • Other components

If all requirements are met, you can install the project using the following commands:

Linux/macOS:

cd src/
make

Windows:

cd src/
bin/mo.bat

Debugger Servers

This SDK does not provide debugger servers for macOS.

Building Debugger Servers on Linux:

cd src/
BUILD_DBGSRV=1 make

Building Debugger Servers on Windows:

cd src\
bin\mso.bat   :: will build win64_remote.exe
bin\m32x86so.bat :: will build win32_remote32.exe

Run

Depending on your build process, some binaries in src/bin may run out of the box. Others may need to be moved to your IDA installation directory.

To use custom-built plugins, you must place them in a location recognized by IDA. You can do this in one of the following ways:

  • Copy plugins manually

    Copy the contents of src/bin/plugins/ to:

    • ~/.idapro/plugins/ on Linux/macOS
    • %APPDATA%\Hex-Rays\IDA Pro\plugins\ on Windows

    Be careful not to overwrite existing plugins.

  • Use the IDAUSR environment variable

    Set or extend the IDAUSR environment variable to include the src/bin path.

  • Install directly to the IDA directory

    Copy the contents of src/bin/plugins/ to <your IDA installation>/plugins/. Be cautious about overwriting existing files.

For more details, see the Getting Started Documentation.

Build Documentation

To build the documentation locally:

Install Tools

macOS

brew install doxygen graphviz

Linux (Debian/Ubuntu)

sudo apt install doxygen graphviz

Windows

  • Download Doxygen installer from doxygen.nl.
  • Install Graphviz separately and add it to PATH.

Building Documentation

From docs folder:

doxygen Doxyfile

Output will appear in:

  • docs/build/

Online Documentation

The latest documentation is available at: https://cpp.docs.hex-rays.com/

Related Projects

Python SDK

The following previous IDAPython repositories have now been archived and moved into this project IDAPython:

For more information, refer to the IDAPython documentation

Support

For commercial support or licensing inquiries, contact: [email protected]

For community help, visit: IDA Users Forum

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

This repository offers an open-source C++ SDK bindings for IDA, enabling custom plugin development and automation.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •