diff options
| author | Jordan Wiens <jordan@psifertex.com> | 2022-03-28 11:35:51 -0400 |
|---|---|---|
| committer | Jordan Wiens <jordan@psifertex.com> | 2022-03-28 11:35:51 -0400 |
| commit | b6d281250f790177a463ba1fe24a29ef8c5be071 (patch) | |
| tree | 9c31f3c72717fb21ec70b1a0052f354a65cfd73b /docs | |
| parent | d1c014519f25521b583f9098a521d8058898aba2 (diff) | |
add documentation about writing native plugins
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/dev/plugins.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/dev/plugins.md b/docs/dev/plugins.md index 01fc52bc..8e6a9988 100644 --- a/docs/dev/plugins.md +++ b/docs/dev/plugins.md @@ -65,3 +65,19 @@ If you wish to debug your python scripts, there are a few methods: 1. In PyCharm, start debugging. You should see "Waiting for process connection..." in the Debugger panel. 1. Open Binary Ninja 1. Use `connect_pycharm_debugger(port=12345)` in the Python Console, using whichever port you selected in the Run Configuration. You should now see "Connected" in the PyCharm Debugger panel. + +# Writing Native Plugins + +Unfortunately, native plugins are not supported in the plugin manager at this time. It's possible to work-around this limitation by pre-building for all three platforms a native plugin and using a python plugin that acts as a loader for the native plugin, but no such examples exist. + +## Matching API versions + +One issue with building a native plugin is that you'll want your plugin to be able to match the API of a given dev build. This information is contained in a file named `api_REVISION.txt` that exists in the root install folder for Linux, the `Contents/Resources` sub-folder on MacOS, and the root installation folder on Windows.. + +## Examples + +Several native plugin examples exist: + + - [ObjectiveNinja](https://github.com/jonpalmisc/ObjectiveNinja) + - [BinExport](https://github.com/google/binexport#binary-ninja) (Used with BinDiff) + - [Binliner](https://github.com/holmesmr/binliner) |
