Scripts and Plugins¶
The JEB back-end offers a rich API that can be used to develop:
- Front-end clients, such as:
- The official RCP client
- Headless clients for automation pipelines
- Back-end modules, such as:
- Analysis modules, such as disassemblers, decompilers, debuggers, or any other type of analyzer
- Engines plugins
- Python scripts for automating simple tasks
- Python scripts that can interact with graphical clients that implement the UI-API (the RCP client does)
While most of the discussion related to extensions development is out-of-scope for this manual, the examination and execution of extensions is not.
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)|
|Business||scripts||all extensions (Java)|
|Enterprise||scripts||all extensions (Java)|
The JEB 2.x Application Programming Interface offers power-users ways to:
- write clients such as command-line processors (headless)
- write extensions, from simple scripts in Python to advanced analysis modules in Java
The discussion of the API is out-of-scope in this manual. Please refer to:
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.
- Client scripts are written in Python, and are executed within a Jython (a Java implementation of the Python VM)
- You will need to drop a copy of the Jython JAR runtime in your JEB
scripts/in order to execute scripts
- Scripts, like any extension, use the JEB API. Visit the reference documentation for details.
- Client scripts executed inside the RCP client also have access to the UI-API (package
com.pnfsoftware.jeb.client.ui). Classes of the UI-API allow graphical manipulation of views, fragments, items, etc. (This sub-API is accessible only to clients that implement it; the RCP client does.)
You will find a large collection of sample scripts on our public Github repository.
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 a 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.
Double-click a plugin to execute it.
You will find a large collection of sample plugins on our public Github repository.