Interface INativeCodeAnalyzerExtensionsManager<InsnType extends IInstruction>
- Type Parameters:
InsnType-
- All Superinterfaces:
INativeCodeAnalyzerExtension<InsnType>
@Ser
public interface INativeCodeAnalyzerExtensionsManager<InsnType extends IInstruction>
extends INativeCodeAnalyzerExtension<InsnType>
Interface for the extensions manager of the
INativeCodeAnalyzer. This manager should be
instantiated from the analyzer in question.
Extensions implement INativeCodeAnalyzerExtension, as does the manager. For each method
of this interface, the manager asks extensions in the order of their priority (see
INativeCodeAnalyzerExtensionsManager.ExtensionPriority), and each of them can provide a final result, or let the following
extensions be asked (see ChainedOperationResult). For now we do not attempt to
merge conflicting results; the last extension to have provided a meaningful result has the final
word.
For now, clients can only register extensions; those extensions can have priority over the
default extensions if they are registered with INativeCodeAnalyzerExtensionsManager.ExtensionPriority.HIGH_PRIORITY.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumPriorities that can be attributed to an extension. -
Method Summary
Modifier and TypeMethodDescriptionvoidRegister an extension with aINativeCodeAnalyzerExtensionsManager.ExtensionPriority.MEDIUM_PRIORITY.voidregisterExtension(INativeCodeAnalyzerExtension<InsnType> ext, INativeCodeAnalyzerExtensionsManager.ExtensionPriority priority) Register an extension with the given priority.voidregisterExtensions(List<INativeCodeAnalyzerExtension<InsnType>> listExt, boolean removePreviousExtensions) Register a list of extensions with aINativeCodeAnalyzerExtensionsManager.ExtensionPriority.MEDIUM_PRIORITY.Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.analyzer.INativeCodeAnalyzerExtension
customizeInstructionItem, determinePotentialPointers, determinePotentialPointersInProtoBlock, determineRoutineStackPointerDelta, determineSwitchInformation, getPossiblePaddingSize, getPreferredAdvancedAnalysisStage, getPreferredBreakingFlow, getPrimitiveSizes, getProbableEntryPoints, getPrologueLooking, getTrampolineTarget, getUnit, initialize, isCandidateSwitchDispatcher, isNonReturningRoutine, postprocessImage, preprocessImage, shouldForceRoutineEnd, sigMatchingPostProcess, skipSymbolProcessing, typeManagerInitialized, verifyGapRoutineCandidate
-
Method Details
-
registerExtension
Register an extension with aINativeCodeAnalyzerExtensionsManager.ExtensionPriority.MEDIUM_PRIORITY. The extension will be initialized.- Parameters:
ext-
-
registerExtension
void registerExtension(INativeCodeAnalyzerExtension<InsnType> ext, INativeCodeAnalyzerExtensionsManager.ExtensionPriority priority) Register an extension with the given priority. The extension will be initialized.- Parameters:
ext-priority-
-
registerExtensions
void registerExtensions(List<INativeCodeAnalyzerExtension<InsnType>> listExt, boolean removePreviousExtensions) Register a list of extensions with aINativeCodeAnalyzerExtensionsManager.ExtensionPriority.MEDIUM_PRIORITY. The extensions will be initialized.- Parameters:
listExt-removePreviousExtensions- if true the currently registered extensions are removed before adding the new ones.
-