Interface INativeDecompilerUnit<InsnType extends IInstruction>

Type Parameters:
InsnType - native instruction type handled by this decompiler
All Superinterfaces:
IAddressableUnit, IDecompilerUnit, IEventSource, IInteractiveUnit, INativeDecompilerContext, IUnit, IUnitCreator, IUserDataSupport

@Ser public interface INativeDecompilerUnit<InsnType extends IInstruction> extends IDecompilerUnit, INativeDecompilerContext
Top-level unit for native decompilers.
  • Method Details

    • getCodeUnit

      INativeCodeUnit<InsnType> getCodeUnit()
      Description copied from interface: IDecompilerUnit
      Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.
      Specified by:
      getCodeUnit in interface IDecompilerUnit
      Returns:
      a code unit, possibly null
    • decompileToUnit

      INativeSourceUnit decompileToUnit(String identifier)
      Description copied from interface: IDecompilerUnit
      Retrieve a decompiled unit or perform a decompilation. This is a high-level function used to decompile generate meaningful (to clients) decompiled code units. The decompiler may normalize the identifier.
      Specified by:
      decompileToUnit in interface IDecompilerUnit
      Parameters:
      identifier - the identifier or address at which the decompilation should be performed
      Returns:
      the source unit
    • decompileToUnit

      INativeSourceUnit decompileToUnit(String identifier, DecompilationContext ctx)
      Description copied from interface: IDecompilerUnit
      Retrieve a decompiled unit or perform a decompilation. This is a high-level function used to decompile and generate meaningful (to clients) source code units. The decompiler may normalize the identifier.

      If a source unit encompassing the provided identifier address already exists, it is returned.

      Specified by:
      decompileToUnit in interface IDecompilerUnit
      Parameters:
      identifier - the identifier or address at which the decompilation should be performed
      ctx - optional decompilation context and options
      Returns:
      a source unit, null on error
    • getDecompiledUnit

      INativeSourceUnit getDecompiledUnit(String identifier)
      Description copied from interface: IDecompilerUnit
      Retrieve the unit representing the decompiled entity at the provided identifier/address. No decompilation is performed.
      Specified by:
      getDecompiledUnit in interface IDecompilerUnit
      Parameters:
      identifier - the identifier or address
      Returns:
      the unit or null, if no decompilation at the provided identifier previously took place
    • decompileToUnit

      INativeSourceUnit decompileToUnit(INativeItem item)
      Decompile a native item into a source unit.
      Parameters:
      item - native item to decompile
      Returns:
      the decompiled source unit
    • decompileToUnit

      INativeSourceUnit decompileToUnit(INativeItem item, DecompilationContext ctx)
      Decompile a native item into a source unit.
      Parameters:
      item - native item to decompile
      ctx - decompilation context
      Returns:
      the decompiled source unit
    • getDecompiledUnit

      INativeSourceUnit getDecompiledUnit(INativeItem item)
      Retrieve a decompiled source unit for a native item.
      Parameters:
      item - native item whose decompiled source unit should be retrieved
      Returns:
      the cached decompiled source unit, or null if unavailable
    • decompileMethodEx

      Decompile or retrieve the current decompilation object for a method.
      Parameters:
      method - native method to decompile
      ctx - decompilation context
      wantedStage - expected pipeline stage
      Returns:
      the decompiled method object
    • getConverter

      IEConverter<InsnType> getConverter()
      Retrieve a decompiler-provided native code converter. The converter provides translation facility from native code to JEB IR objects, called IRE (Intermediate Representation Expressions).

      Note: a decompiler object has one and only one code converter.

      Specified by:
      getConverter in interface INativeDecompilerContext
      Returns:
      a native-to-IR converter
    • getExtensionsManager

      INativeDecompilerExtensionsManager getExtensionsManager()
      Retrieve the native decompiler extension manager.
      Specified by:
      getExtensionsManager in interface INativeDecompilerContext
      Returns:
      the extension manager