public interface

INativeDecompilerUnit

implements IDecompilerUnit INativeDecompilerContext
com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerUnit<InsnType extends com.pnfsoftware.jeb.core.units.code.IInstruction>

Class Overview

Top-level unit for native decompilers.

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
Public Methods
abstract IDecompiledMethod decompileMethodEx(INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage)
Decompile or retrieve the current decompilation object for a method.
abstract INativeSourceUnit decompileToUnit(String identifier, DecompilationContext ctx)
Retrieve a decompiled unit or perform a decompilation.
abstract INativeSourceUnit decompileToUnit(String identifier)
Retrieve a decompiled unit or perform a decompilation.
abstract INativeSourceUnit decompileToUnit(INativeItem item)
abstract INativeSourceUnit decompileToUnit(INativeItem item, DecompilationContext ctx)
abstract INativeCodeUnit<InsnType> getCodeUnit()
Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.
abstract IEConverter<InsnType> getConverter()
Retrieve a decompiler-provided native code converter.
abstract INativeSourceUnit getDecompiledUnit(String identifier)
Retrieve the unit representing the decompiled entity at the provided identifier/address.
abstract INativeSourceUnit getDecompiledUnit(INativeItem item)
abstract INativeDecompilerExtensionsManager getExtensionsManager()
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.IUnitCreator
From interface com.pnfsoftware.jeb.core.IUserDataSupport
From interface com.pnfsoftware.jeb.core.units.IAddressableUnit
From interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
From interface com.pnfsoftware.jeb.core.units.IUnit
From interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerContext
From interface com.pnfsoftware.jeb.util.events.IEventSource

Public Methods

public abstract IDecompiledMethod decompileMethodEx (INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage)

Decompile or retrieve the current decompilation object for a method.

public abstract INativeSourceUnit decompileToUnit (String identifier, DecompilationContext ctx)

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.

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

public abstract INativeSourceUnit decompileToUnit (String identifier)

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.

Parameters
identifier the identifier or address at which the decompilation should be performed
Returns
  • the source unit

public abstract INativeSourceUnit decompileToUnit (INativeItem item)

public abstract INativeSourceUnit decompileToUnit (INativeItem item, DecompilationContext ctx)

public abstract INativeCodeUnit<InsnType> getCodeUnit ()

Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.

Returns
  • a code unit, possibly null

public abstract 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), see documentation here.

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

Returns
  • a native-to-IR converter

public abstract INativeSourceUnit getDecompiledUnit (String identifier)

Retrieve the unit representing the decompiled entity at the provided identifier/address. No decompilation is performed.

Parameters
identifier the identifier or address
Returns
  • the unit or null, if no decompilation at the provided identifier previously took place

public abstract INativeSourceUnit getDecompiledUnit (INativeItem item)

public abstract INativeDecompilerExtensionsManager getExtensionsManager ()