Interface INativeDecompilerUnit<InsnType extends IInstruction>
- Type Parameters:
InsnType
-
- 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.
-
Field Summary
Fields inherited from interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
FLAG_BATCH_DECOMPILATION, FLAG_KEEP_IR, FLAG_NO_CONCURRENT_DECOMPILATION, FLAG_NO_DEFERRED_DECOMPILATION, FLAG_NO_INNER_DECOMPILATION, FLAG_NO_METHOD_AST_GENERATION, FLAG_STANDALONE_IR_CONVERSION, FLAG_TEMP_FORCED_REDECOMPILATIONS, propnameListOfDisabledExternalPlugins
-
Method Summary
Modifier and TypeMethodDescriptiondecompileMethodEx
(INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage) Decompile or retrieve the current decompilation object for a method.decompileToUnit
(INativeItem item) decompileToUnit
(INativeItem item, DecompilationContext ctx) decompileToUnit
(String identifier) Retrieve a decompiled unit or perform a decompilation.decompileToUnit
(String identifier, DecompilationContext ctx) Retrieve a decompiled unit or perform a decompilation.Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.Retrieve a decompiler-provided native code converter.getDecompiledUnit
(INativeItem item) getDecompiledUnit
(String identifier) Retrieve the unit representing the decompiled entity at the provided identifier/address.Methods inherited from interface com.pnfsoftware.jeb.core.units.IAddressableUnit
getAddressLabel, getAddressLabels, getAddressOfItem, getCanonicalAddress, getItemAtAddress, getItemObject, getRelatedItems, getWellKnownAddresses, isValidAddress
Methods inherited from interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
canDecompile, canPerformConcurrentDecompilations, decompile, decompileAll, decompileAllClasses, decompileAllMethods, decompileClass, decompileClass, decompileClasses, decompileField, decompileField, decompileMethod, decompileMethod, decompileMethods, getDecompiledClassText, getDecompiledFieldText, getDecompiledMethodText, getDecompiledText, getExporter, getOutputType, getThreadPoolSize, removeAllDecompilations, removeDecompilation, removeFreeElements, resetAllDecompilations, resetDecompilation, runGarbageCollection, setThreadPoolSize
Methods inherited from interface com.pnfsoftware.jeb.util.events.IEventSource
addListener, countListeners, getListeners, getParentSource, insertListener, notifyListeners, removeListener, setParentSource
Methods inherited from interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
addressToLocation, canExecuteAction, executeAction, executeAction, getAddressActions, getCommentManager, getFullComment, getFullComments, getGlobalActions, getInlineComment, getInlineComments, getItemActions, getMetadataManager, locationToAddress, prepareExecution, setInlineComment
Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerContext
createASTOptimizer, createIROptimizer, decompile, decompile, getDecompiledItem, getDecompiledItem, getDecompiledItems, getEngine, getGlobalContext, getHighLevelContext, getIntermediateContext, getNativeContext, getObjectTracker, getOptions, getTypeManager, getWildcardTypeManager, onEngineNotification, removeDecompilation, resetDecompilation
Methods inherited from interface com.pnfsoftware.jeb.core.units.IUnit
addChild, addChild, canBePersisted, dispose, generateQuickState, getChildren, getContributions, getCreationTimestamp, getDescription, getExtraInputs, getFormatter, getFormatType, getIconData, getInput, getInterpreters, getLock, getName, getNotes, getNotificationManager, getParent, getParentArtifact, getParentProject, getPropertyDefinitionManager, getPropertyManager, getRealName, getStatus, getUid, getUnitProcessor, initializePropertyObjects, isDisposed, isProcessed, isStale, isTransientChild, notifyGenericChange, postDeserialization, process, removeChild, setName, setNotes, setParent, setRealName, setUnitProcessor
Methods inherited from interface com.pnfsoftware.jeb.core.IUserDataSupport
clearAllData, getAllData, getData, setData
-
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 interfaceIDecompilerUnit
- Returns:
- a code unit, possibly null
-
decompileToUnit
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 interfaceIDecompilerUnit
- Parameters:
identifier
- the identifier or address at which the decompilation should be performed- Returns:
- the source unit
-
decompileToUnit
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 interfaceIDecompilerUnit
- Parameters:
identifier
- the identifier or address at which the decompilation should be performedctx
- optional decompilation context and options- Returns:
- a source unit, null on error
-
getDecompiledUnit
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 interfaceIDecompilerUnit
- Parameters:
identifier
- the identifier or address- Returns:
- the unit or null, if no decompilation at the provided identifier previously took place
-
decompileToUnit
-
decompileToUnit
-
getDecompiledUnit
-
decompileMethodEx
IDecompiledMethod decompileMethodEx(INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage) Decompile or retrieve the current decompilation object for a method. -
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), see documentation here.Note: a decompiler object has one and only one code converter.
- Specified by:
getConverter
in interfaceINativeDecompilerContext
- Returns:
- a native-to-IR converter
-
getExtensionsManager
INativeDecompilerExtensionsManager getExtensionsManager()- Specified by:
getExtensionsManager
in interfaceINativeDecompilerContext
- Returns:
-