Writing Engines Plugins - JEB Decompiler
Author: PNF Software

# Writing Engines Plugins

Engines plugins, just like any JEB extension (parser, script, etc.) use the JEB API.

They are loaded when JEB starts. Unlike parsers, their role is not to process input data to produce units; they are meant to perform pointed tasks. They can be called on-demand by clients.

From a programmer's standpoint, engines plugins extend the `IEnginesPlugin` (whereas processor plugins extend the `IUnitIdentifier` interface).

## Sample Plugins

Sample plugins can be found on our GitHub account. Examples:

- Andhook: Android Cryptographic Primitives Hooking using the JEB Debuggers API
- ...

## Skeleton Plugin

Full source code: Sample plugin skeleton on GitHub

    public class SampleEnginesPlugin implements IEnginesPlugin {
        private static final ILogger logger = GlobalLog.getLogger(SampleEnginesPlugin.class);

        @Override
        public IPluginInformation getPluginInformation() {
            return new PluginInformation("Sample Plugin", "A sample JEB plugin", "PNF Software", Version.create(1, 0));
        }

        @Override
        public List<? extends IOptionDefinition> getExecutionOptionDefinitions() {
            return null;
        }

        @Override
        public void execute(IEnginesContext context) {
            execute(context, null);
        }

        @Override
        public void execute(IEnginesContext engctx, Map<String, String> executionOptions) {
            logger.info("Executing sample plugin");
        }

        @Override
        public void dispose() {
        }
    }

#### Search

From here you can search these documents. Enter your search terms below.

#### Keyboard Shortcuts

Keys | Action
--- | ---
`?` | Open this help
`n` | Next page
`p` | Previous page
`s` | Search