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.
- IDA Documentation
- C++ Developer’s Guide
- SDK reference
- Additional README files in subdirectories provide details for processor modules, loaders, and other components.
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.
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++,rsyncInstall 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
--siteis 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
src/module/— Processor modulessrc/ldr/— Loader modulessrc/include/— Core IDA SDK headerssrc/lib/— Stub libraries for linking against IDA kernelsrc/dbg/— Debugger server integrationsrc/bin/— Build helpers & binariessrc/idalib/— IDA as a library examplessrc/plugins/— Sample plugin modules (including IDAPython)
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/
makeWindows:
cd src/
bin/mo.batThis SDK does not provide debugger servers for macOS.
Building Debugger Servers on Linux:
cd src/
BUILD_DBGSRV=1 makeBuilding Debugger Servers on Windows:
cd src\
bin\mso.bat :: will build win64_remote.exe
bin\m32x86so.bat :: will build win32_remote32.exeDepending 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
IDAUSRenvironment variableSet or extend the
IDAUSRenvironment variable to include thesrc/binpath. -
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.
To build the documentation locally:
brew install doxygen graphvizsudo apt install doxygen graphviz- Download Doxygen installer from doxygen.nl.
- Install Graphviz separately and add it to PATH.
From docs folder:
doxygen DoxyfileOutput will appear in:
docs/build/
The latest documentation is available at: https://cpp.docs.hex-rays.com/
The following previous IDAPython repositories have now been archived and moved into this project IDAPython:
https://github.com/idapython/srchttps://github.com/HexRaysSA/IDAPython
For more information, refer to the IDAPython documentation
For commercial support or licensing inquiries, contact: [email protected]
For community help, visit: IDA Users Forum
This project is licensed under the MIT License - see the LICENSE file for details.