Interface INativeDisassemblerPlugin<InsnType extends IInstruction>
- Type Parameters:
InsnType- instruction type handled by the disassembler plugin
- All Superinterfaces:
INativePlugin<InsnType>,IPlugin,IUnitPlugin
- All Known Implementing Classes:
AbstractNativeDisassemblerPlugin
public interface INativeDisassemblerPlugin<InsnType extends IInstruction>
extends INativePlugin<InsnType>
Native disassembler plugins. Decompiler plugins should implement
AbstractNativeDisassemblerPlugin.-
Method Summary
Modifier and TypeMethodDescriptionbooleanDetermine when this disassembler knows how to process 'naked' code, not located within a code object.booleancanProcessELF(int machineId, boolean isELF64) Determine whether this disassembler can handle machine code identified by the provided ELF machine id.booleancanProcessPE(int machineId, boolean isPE64) Determine whether this disassembler can handle machine code identified by the provided PE/COFF machine id.default Collection<IUnitContribution> createContributions(INativeCodeUnit<InsnType> codeUnit) Create optional unit contributions for a native code unit.Create or retrieve the analyzer extension supplied by this plugin.getCallingConvention(IUnitCreator parent) Create or retrieve the default calling convention.Create or retrieve the code formatter.getMemory(IUnitCreator parent) Create or retrieve the virtual memory model.getProcessor(IUnitCreator parent) Create or retrieve the processor used by this disassembler.Provide a list of processor types supported by this plugin's processor.Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.INativePlugin
setupCustomPropertiesMethods inherited from interface com.pnfsoftware.jeb.core.IPlugin
dispose, getData, getPluginInformation, setDataMethods inherited from interface com.pnfsoftware.jeb.core.units.IUnitPlugin
getFormatType, getPriority, getPropertyDefinitionManager, getTypeIdProvider, initialize
-
Method Details
-
canBeProcessedOutsideCodeObject
boolean canBeProcessedOutsideCodeObject()Determine when this disassembler knows how to process 'naked' code, not located within a code object.- Returns:
- true if raw machine code can be processed without a code object
-
canProcessELF
boolean canProcessELF(int machineId, boolean isELF64) Determine whether this disassembler can handle machine code identified by the provided ELF machine id.- Parameters:
machineId- ELF machine identifierisELF64- true for 64-bit ELF objects- Returns:
- true if the ELF machine type can be processed
-
canProcessPE
boolean canProcessPE(int machineId, boolean isPE64) Determine whether this disassembler can handle machine code identified by the provided PE/COFF machine id.- Parameters:
machineId- PE/COFF machine identifierisPE64- true for 64-bit PE objects- Returns:
- true if the PE/COFF machine type can be processed
-
getProcessorTypes
List<ProcessorType> getProcessorTypes()Provide a list of processor types supported by this plugin's processor. The list must be consistent with the candidate values thatthe implemented processor may return. The returned list may be empty if the processor does not use a specific type, as may be the case with bytecode parsers.- Returns:
- a list, possibly empty
-
getProcessor
Create or retrieve the processor used by this disassembler.- Parameters:
parent- parent unit creator- Returns:
- processor instance
-
getCallingConvention
Create or retrieve the default calling convention.- Parameters:
parent- parent unit creator- Returns:
- calling convention, or null if it should be inferred
-
getMemory
Create or retrieve the virtual memory model.- Parameters:
parent- parent unit creator- Returns:
- virtual memory model
-
getCodeFormatter
GenericCodeFormatter<InsnType> getCodeFormatter()Create or retrieve the code formatter.- Returns:
- native code formatter
-
getAnalyzerExtension
INativeCodeAnalyzerExtension<InsnType> getAnalyzerExtension()Create or retrieve the analyzer extension supplied by this plugin.- Returns:
- analyzer extension, or null if none is supplied
-
createContributions
Create optional unit contributions for a native code unit.- Parameters:
codeUnit- native code unit being created- Returns:
- contribution collection, possibly empty
-