Interface IPlugin

All Known Subinterfaces:
ICOptimizer, IDebuggerUnitIdentifier, IDOptimizer, IDynamicTargetPlugin, IEnginesPlugin, IEOptimizer, IJOptimizer, INativeDecompilerExtension, INativeDecompilerExtensionsManager, INativeDecompilerPlugin<InsnType>, INativeDisassemblerPlugin<InsnType>, INativePlugin<InsnType>, IOptimizer<T>, IUnitContribution, IUnitIdentifier, IUnitInterpreter, IUnitPlugin
All Known Implementing Classes:
AbstractCBlockOptimizer, AbstractCElementOptimizer, AbstractCOptimizer, AbstractCStatementOptimizer, AbstractDCollectionOptimizer, AbstractDOptimizer, AbstractEBlockOptimizer, AbstractEExpressionOptimizer, AbstractEnginesPlugin, AbstractEOptimizer, AbstractEPatternOptimizer, AbstractEStatementOptimizer, AbstractJBlockOptimizer, AbstractJElementOptimizer, AbstractJOptimizer, AbstractJStatementOptimizer, AbstractNativeDecompilerExtension, AbstractNativeDecompilerPlugin, AbstractNativeDisassemblerPlugin, AbstractNativePlugin, AbstractOptimizer, AbstractPlugin, AbstractUnitIdentifier, AbstractUnitPlugin

public interface IPlugin
Base interface for JEB back-end plugins.

Plugins should not implement this interface directly, but instead implement one of the children interfaces that are made available by the API:

  • IEnginesPlugin for generic engines plugins
  • IUnitIdentifier for parsers/disassemblers/decompilers/debuggers/etc.
  • IUnitContribution for contributions (ie, extensions) to parsers
  • IUnitInterpreter for interpreters (ie, command-line extensions) to parsers
  • IOptimizer for native IR and AST optimizers for gendec, JEB's generic decompiler
  • IDOptimizer for IR optimizers used by dexdec, JEB's dex decompiler.
  • IJOptimizer for AST optimizers used by dexdec, JEB's dex decompiler.

Implementation note: JEB plugins can be written in Java (and optionally contained in JAR files). Contributions may also be written in Python.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Dispose of resources used by this plugin.
    Retrieve a piece of transient plugin data.
    Retrieve basic information about the plugin, such as name, version, author, and organization.
    void
    setData(Object key, Object value)
    Store a piece of transient plugin data.
  • Method Details

    • getPluginInformation

      IPluginInformation getPluginInformation()
      Retrieve basic information about the plugin, such as name, version, author, and organization.
      Returns:
      the plugin information
    • setData

      void setData(Object key, Object value)
      Store a piece of transient plugin data.
      Parameters:
      key -
      value -
    • getData

      Object getData(Object key)
      Retrieve a piece of transient plugin data.
      Parameters:
      key -
      Returns:
    • dispose

      void dispose()
      Dispose of resources used by this plugin. The engines context calls this method upon plugin unloading.