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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/8.4/user-guide/plugins/open-plugin-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
