BinNavi Logo

Writing BinNavi Plugins

Overview

One of BinNavi's main features is its extensibility through plugins written in the Java programming language and other languages. The general idea behind BinNavi plugins is that each BinNavi plugin implements one or more of the plugin interfaces provided by the BinNavi plugin API. Depending on what interfaces a plugin implements, BinNavi gives the plugin access to itself through a well-defined plugin interface.

Writing plugins in Java

Java is the preferred programming language for writing plugins in BinNavi. While plugins written in other languages are not limited in any way by BinNavi, there might be speed concerns when implementing plugins in a language like Ruby for example.

To write your own plugins you need to know the following things:

To find out what can be done through plugins please consult the Plugin API section of this manual.

Writing plugins in scripting languages

In principle, all languages that can be used to write BinNavi scripts can also be used to write BinNavi plugins. By default this includes Python.

To write plugins in any of the supported scripting languages, you need to know the following things:

Since accessing Java classes and objects from languages other than Java has some quirks, BinNavi comes with two small sample scripts written in Python that can be used as the starting point for new plugins written in these languages. You can find these sample scripts in the scripts subdirectory of your BinNavi installation.