Plugins
Plugins are modules written in C++ or IDAPython that provide additional functionality to IDA. They can improve analysis, automate tedious tasks, and integrate new features.
Invoking plugins
Usually, a plugin is invoked through a hotkey or the menu system. The registered and loaded plugins will appear in a special Edit → Plugins submenu.
Plugins location
The plugin modules reside in the plugins
subdirectory of IDA. IDA is able to find and load all the plugins from this directory automatically. However, you can write a configuration file and tell IDA how to load plugins. To do so, you need to modify the plugins.cfg
file in the plugins
subdirectory, as described below.
Configure how plugins are loaded with plugins.cfg
plugins.cfg
The plugins.cfg
file is needed to customize the plugins, including:
appearance of the plugin in the menu
the hotkey used to call the plugin
the optional argument passed to the plugin
The format of the plugins.cfg
file is simple:
Empty lines and lines starting with ';' are comment lines
Other lines must have the following structure and fields:
menu_name filename hotkey arg flags
Example:
Undefine undef Alt-U 0
menu_name
A visible name of the plugin. This name will be used in the Edit → Plugins menu. Underscore symbols will be replaced by spaces here.
filename
The plugin file name. If the filename doesn't include the file extension or the directory, IDA will add them.
Default extensions:
- Windows: .dll
- Linux: .so
- macOS: .dylib
Note: Plugins compiled with support for 64-bit address space use a 64
suffix before the extension (e.g., pdb64.dll
).
hotkey
A hotkey to activate the plugin
arg
An optional integer argument which will be passed to the run() function of the plugin
flags
Optional flags. The following values are available:
- DEBUG
: Debugger plugin
- WIN
: Enable plugin for MS Windows
- MAC
: Enable plugin for Mac
- LINUX
: Enable plugin for Linux
- GUI
: Plugin can only be used with GUI version of IDA
- SILENT
: Silently skip nonexisting plugin
See also
Check documentation on individual plugins.
Last updated
Was this helpful?