Introducing JEB Extensions

JEB offers a rich API that can be used to develop:

Note: the Developing with JEB area of this guide is superseding our Developer Portal. This is a work-in-progress as old pages are being ported over, and new contents is being added.

Capabilities

Only professional licenses offer full API access. However, all licenses allow script execution from within the RCP client:

Licenses Type RCP client Other Clients (incl. command-line)
Basic UI scripts no
Pro UI scripts + plugins scripts + plugins

High-level Architecture

Grasping the high-level concepts of how pieces fit together within JEB will make you a more efficient extensions developer.

At the highest-level, JEB is separated into back-end and front-end components:

Note: As said earlier, all JEB distributions ship with the RCP client front-end that runs on all major desktop operating systems.

The diagram below shows the relationship between back-end and front-end components:

Depending on their license type, users may be able to develop third-party plugins and instruct the back-end to load them. This enables power users to craft input processors that cater to their specific needs (eg, a disassembler for an exotic or virtual CPU).

You may verify your API usage capabilities by starting JEB with the -c --license command line flag.

API

The JEB 2.x Application Programming Interface offers power-users ways to:

The JEB API reference documentation is available online as well as offline, within your JEB software package (file doc/apidoc.zip).

A exhaustive discussion of the API components is outside the scope of this guide.

Scripts vs Plugins

Future: we may allow plugins to be written in Python soon, stay tuned!

Executing Scripts

Note: All versions of JEB can execute client scripts inside the RCP client.

Scripts should be dropped in your scripts/ directory (or any other directory specified in your .ScriptsFolder client option). Use the File, Script, Run Script... menu command to execute a script. The last run script can be executed again by pressing the F2 key.

You will find a large collection of sample scripts on our public Github repository.

Executing Engines Plugins

All third-party plugins must be dropped in your coreplugins/ directory (or any other directory specified in your .PluginsFolder back-end option). Use the File, Engines, Execute, ... menu command to execute an engines plugin.

Note: technically speaking, engines plugins are JEB plugins that implement the IEnginesPlugin interface.

The full list of engines plugins loaded within your JEB instance context can be seen by running the File, Engines, Plugins command. (You may double-click a plugin to execute it.)

A collection of open-source plugins can be found on our public Github repository.