package

com.pnfsoftware.jeb.core

The core package and subpackages define classes and interfaces to develop JEB back-end plugins.

Back-end plugins come in 2 varieties:

  • Engines plugins: those plugins are loaded by the engine and can run any code.
  • Unit plugins (also referred to as parsers): those plugins are used to parse input data and provide results to front-ends. They are primarily used to extend JEB functionality as they allow third-party addition of disassemblers, decompilers, reformatters, deobfuscators, parsers, or binary data transformers of any sort to the JEB base package.

Interfaces

IArtifact Base interface for artifacts. 
IContributor This interface is to be implemented by plugins (eg, engines plugins or parsers) or units that wish to provide contributions to other units. 
ICoreContext A core context. 
IEnginesContext A context for JEB engines. 
IEnginesPlugin Interface for standard engines plugin. 
ILiveArtifact A "runtime" artifact, that connects a project, an artifact, and root units. 
IOptionDefinition Simple definition for a type-less option, containing a name and a description. 
IPlugin Base interface for JEB back-end plugins. 
IPluginInformation Plugin information object. 
IRuntimeProject A runtime project represents a loaded instance of a JEB project. 
IUnitContribution A unit contribution. 
IUnitCreator Tagging interface for types that produce units
IUnitFilter A filter for units, used by RuntimeProjectUtil utility methods. 

Classes

AbstractEnginesPlugin Skeleton implementation for an engines plugin
Artifact A simple implementation for a named artifact that takes a flexible IInput object as input. 
JebClientInformation Information about a JEB client (aka, a JEB front-end). 
JebCoreService Service class used to create or retrieve a reference to the JEB core context. 
OptionDefinition An implementation for an option description. 
PluginInformation Standard implementation of a plugin information object. 
RuntimeProjectUtil A collection of utility methods to navigate and act on JEB projects. 
Version Version number object, in the form of: major.minor.buildid[.timestamp]