# Open Plugin 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

* 4 sample plugins
  * a simple “hello world” type plugin.
  * a sample processor extension plugin (adds 2 NEC V20 specific instructions to the 80×86 processor module).
  * a sample pdb file loader ( as used by IDA itself ).
  * a sample executable decryption plugin.
  * a sample graphing plugin.
  * ![](https://github.com/HexRaysSA/docs/blob/IDA-8.4/user-guide/plugins/assets/charterplugin1.gif) ![](https://github.com/HexRaysSA/docs/blob/IDA-8.4/user-guide/plugins/assets/charterplugin2.gif)
* the source code to a 30+ processor modules!
* the source code to a 20+ loaders
* header files (almost 19.000 lines of heavily commented documentation to IDA’s exported interface).
* import libraries for Borland C/C++ (32 & 64 bits), Microsoft Visual C++ 6 (32 & 64 bits), GNU C/C++ (32 & 64 bits), Watcom 11
* if you received IDA as a download, the SDK download information can be found in the e-mail you have received.

## Additional free plugins, from Ilfak’s blog:

<table><thead><tr><th></th><th></th><th data-type="files"></th></tr></thead><tbody><tr><td><strong>stealth</strong></td><td>Stealth against anti-debugging tricks</td><td></td></tr><tr><td><strong>findcrypt</strong></td><td>Identifies some frequently used block ciphers</td><td></td></tr><tr><td><strong>highlighter</strong></td><td>Highlights code that has been single stepped through in a debugging session</td><td></td></tr><tr><td><strong>unispector</strong></td><td>Extracts unicode strings from an IDA database</td><td></td></tr></tbody></table>
