IDA Technology: Open Plug-In Architecture

IDA's functionality can easily be extended by the use of programmable plug-ins. Plugins may be written to automate routine tasks, for example to enhance the analysis of hostile code or to add specific functionality to our disassembler. Plugins should be written in C++. They may be linked to hot keys or menu items and have full access to the IDA database and may examine or modify the program or use I/O functions. Our SDK contains

The SDK is free to any registered IDA user

additional free plugins, from Ilfak's blog