package

com.pnfsoftware.jeb.core

The core package and sub-packages define classes and interfaces to interact with and develop JEB back-end plugins.

Back-end plugins come in multiple varieties, including:

  • 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.
  • Decompiler plugins: IR and AST optimizers for gendec and dexdec

Interfaces

IArtifact Base interface for artifacts. 
ICoreContext A core context. 
IDynamicTargetPlugin A dynamic target plugin is a special type of plugin that takes one or more units as input and provide augmentation for those units. 
IEnginesContext A context for JEB engines. 
IEnginesPlugin Interface for standard JEB engines plugin. 
IInputRecord Definition of some input bytes seen by the Core context. 
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. 
IPluginFileEntry<T extends IPlugin> Plugin entry managed by a plugin manager. 
IPluginInformation Plugin information object. 
IPluginManager JEB plugin manager for external plugins running alongside the JEB back-end components. 
IRuntimeProject A runtime project represents a loaded instance of a JEB project. 
ITypedOptionDefinition Extended, typed option containing type of definition in addition to IOptionDefinition
IUnitContribution A unit contribution plugin. 
IUnitCreator An interface implemented by all types that produce units
IUnitFilter A filter for units, used by RuntimeProjectUtil utility methods. 
IUserDataSupport This decorator interface is used to let users know that arbitrary data objects may be attached to the object. 

Classes

AbstractEnginesPlugin Skeleton implementation for engines plugins
AbstractPlugin Skeleton implementation of JEB plugins. 
Artifact Basic implementation for a named artifact that takes a flexible IInput object. 
AssetManager Manager for Core assets. 
BookmarkManager Bookmark manager used by JEB projects. 
BookmarkManager.Bookmark Definition of a bookmark. 
BooleanOptionDefinition Boolean option description used by property definition managers. 
ControllerInfo Floating controller information. 
CoreOptions Public options for ICoreContext
DevPluginClassname These objects represent classnames of plugins that are currently being developed. 
EditablePluginInformation Editable plugins information offer setters to mutate some plugin-info properties such as the name or description. 
EnginesContextUtil Utility routines for JEB Engines context
EnginesPropertiesUtil Utility class to handle (parse and get, build and save) some JEB back-end properties. 
JebClientInformation Information about a JEB client (aka, a JEB front-end). 
JebConstants JEB constants. 
JebCoreService Service class used to create or retrieve a reference to the JEB core context. 
ListOptionDefinition List option description used by property definition managers. 
OptionDefinition An implementation for an option description. 
Perflog Performance counters, reserved for internal debug use. 
PluginInformation Standard implementation of a plugin information object. 
RuntimeProjectUtil A collection of utility methods to navigate and act on JEB projects. 
ScriptMetadata Metadata information for a JEB script (type, description, version, etc.). 
ScriptMetadataParser Parser and generator of ScriptMetadata objects. 
UserDataSupport Standard implementation of the user-data support decorator interface. 
Version Version number object. 

Enums

ITypedOptionDefinition.Type Types of typed options.