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.
-
Field Summary
Fields inherited from interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
FLAG_ALLOW_EXTRA_WORK, 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) Decompile a native item into a source unit.decompileToUnit(INativeItem item, DecompilationContext ctx) Decompile a native item into a source unit.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) Retrieve a decompiled source unit for a native item.getDecompiledUnit(String identifier) Retrieve the unit representing the decompiled entity at the provided identifier/address.Retrieve the native decompiler extension manager.Methods inherited from interface com.pnfsoftware.jeb.core.units.IAddressableUnit
getAddressLabel, getAddressLabels, getAddressOfItem, getCanonicalAddress, getItemAtAddress, getItemObject, getRelatedItems, getWellKnownAddresses, isValidAddressMethods 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, setThreadPoolSizeMethods inherited from interface com.pnfsoftware.jeb.util.events.IEventSource
addListener, countListeners, getListeners, getParentSource, insertListener, notifyListeners, removeListener, setParentSourceMethods inherited from interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
addressToLocation, canExecuteAction, executeAction, executeAction, getAddressActions, getCommentManager, getFullComment, getFullComments, getGlobalActions, getInlineComment, getInlineComments, getItemActions, getMetadataManager, locationToAddress, prepareExecution, setInlineCommentMethods 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, resetDecompilationMethods inherited from interface com.pnfsoftware.jeb.core.units.IUnit
addChild, addChild, canBePersisted, dispose, execprvfunc, 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, setUnitProcessorMethods inherited from interface com.pnfsoftware.jeb.core.IUserDataSupport
clearAllData, getAllData, getData, setData
-
Method Details
-
getCodeUnit
INativeCodeUnit<InsnType> getCodeUnit()Description copied from interface:IDecompilerUnitGet the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.- Specified by:
getCodeUnitin interfaceIDecompilerUnit- Returns:
- a code unit, possibly null
-
decompileToUnit
Description copied from interface:IDecompilerUnitRetrieve 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:
decompileToUnitin interfaceIDecompilerUnit- Parameters:
identifier- the identifier or address at which the decompilation should be performed- Returns:
- the source unit
-
decompileToUnit
Description copied from interface:IDecompilerUnitRetrieve 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:
decompileToUnitin 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:IDecompilerUnitRetrieve the unit representing the decompiled entity at the provided identifier/address. No decompilation is performed.- Specified by:
getDecompiledUnitin interfaceIDecompilerUnit- Parameters:
identifier- the identifier or address- Returns:
- the unit or null, if no decompilation at the provided identifier previously took place
-
decompileToUnit
Decompile a native item into a source unit.- Parameters:
item- native item to decompile- Returns:
- the decompiled source unit
-
decompileToUnit
Decompile a native item into a source unit.- Parameters:
item- native item to decompilectx- decompilation context- Returns:
- the decompiled source unit
-
getDecompiledUnit
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
IDecompiledMethod decompileMethodEx(INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage) Decompile or retrieve the current decompilation object for a method.- Parameters:
method- native method to decompilectx- decompilation contextwantedStage- 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:
getConverterin interfaceINativeDecompilerContext- Returns:
- a native-to-IR converter
-
getExtensionsManager
INativeDecompilerExtensionsManager getExtensionsManager()Retrieve the native decompiler extension manager.- Specified by:
getExtensionsManagerin interfaceINativeDecompilerContext- Returns:
- the extension manager
-