Class AbstractNativeDisassemblerPlugin<InsnType extends IInstruction>
java.lang.Object
com.pnfsoftware.jeb.core.AbstractPlugin
com.pnfsoftware.jeb.core.units.AbstractUnitPlugin
com.pnfsoftware.jeb.core.units.code.asm.AbstractNativePlugin<InsnType>
com.pnfsoftware.jeb.core.units.code.asm.AbstractNativeDisassemblerPlugin<InsnType>
- Type Parameters:
InsnType- instruction type handled by the disassembler plugin
- All Implemented Interfaces:
IPlugin,INativeDisassemblerPlugin<InsnType>,INativePlugin<InsnType>,IUnitPlugin
public abstract class AbstractNativeDisassemblerPlugin<InsnType extends IInstruction>
extends AbstractNativePlugin<InsnType>
implements INativeDisassemblerPlugin<InsnType>
Base implementation of a
INativeDisassemblerPlugin. Disassembler plugins should extend
this class.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringProperty name for enabling advanced analysis.static final StringProperty name for the analysis style setting.static final StringProperty name for applying Android native prototypes.static final StringProperty name for the calling convention setting.static final StringProperty name for compiler identification.static final StringProperty name for creating packages from routine names.static final StringProperty name for the debug information retrieval policy.static final StringProperty name for the debug information usage policy.static final StringProperty name for delaying analysis.static final StringProperty name for the endianness setting.static final StringProperty name for forcing synchronous analysis.static final StringProperty name for the image base setting.static final StringProperty name for loading codeless signatures from type libraries.static final StringProperty name for class recovery.static final StringProperty name for fake routine call analysis.static final StringProperty name for global analysis.static final StringProperty name for RTTI recovery.static final StringProperty name for hexadecimal address rendering preference.static final StringProperty name for the relocation base of zero-based relocatable objects.static final StringProperty name for signature package loading.static final StringProperty name for switch analysis style.static final StringProperty name for tail-call analysis style.static final StringProperty name for type library usage.Fields inherited from class com.pnfsoftware.jeb.core.units.AbstractUnitPlugin
pdm, pm, priority, type -
Constructor Summary
ConstructorsConstructorDescriptionAbstractNativeDisassemblerPlugin(String type, double priority) Create a native disassembler plugin. -
Method Summary
Modifier and TypeMethodDescriptionbooleanThe default implementation returns true: native assemblies or assemblies treated as native can be processed outside of a container file (aka, a code object, such as a PE or ELF file0.booleancanProcessELF(int machineId, boolean isELF64) The default implementation returns false.booleancanProcessPE(int machineId, boolean isPE64) The default implementation returns false.getCallingConvention(IUnitCreator parent) The default implementation returns null.The default implementation returns an empty collection.toString()Methods inherited from class com.pnfsoftware.jeb.core.units.code.asm.AbstractNativePlugin
setupCustomPropertiesMethods inherited from class com.pnfsoftware.jeb.core.units.AbstractUnitPlugin
getFormatType, getPriority, getPropertyDefinitionManager, getTypeIdProvider, initializeMethods inherited from class com.pnfsoftware.jeb.core.AbstractPlugin
dispose, getData, setDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.INativeDisassemblerPlugin
createContributions, getAnalyzerExtension, getCodeFormatter, getMemory, getProcessorMethods 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
-
Field Details
-
propnameEndianness
Property name for the endianness setting.- See Also:
-
propnameImageBase
Property name for the image base setting.- See Also:
-
propnameRelocationBaseForZeroBasedRelocatableObjects
Property name for the relocation base of zero-based relocatable objects.- See Also:
-
propnameCallingConvention
Property name for the calling convention setting.- See Also:
-
propnameDelayAnalysis
Property name for delaying analysis.- See Also:
-
propnameAllowAdvancedAnalysis
Property name for enabling advanced analysis.- See Also:
-
propnameForceSynchronousAnalysis
Property name for forcing synchronous analysis.- See Also:
-
propnameAnalysisStyle
Property name for the analysis style setting.- See Also:
-
propnamePerformClassRecovery
Property name for class recovery.- See Also:
-
propnamePerformRttiRecovery
Property name for RTTI recovery.- See Also:
-
propnamePerformGlobalAnalysis
Property name for global analysis.- See Also:
-
propnameDebugInformationUsagePolicy
Property name for the debug information usage policy.- See Also:
-
propnameDebugInformationRetrievalPolicy
Property name for the debug information retrieval policy.- See Also:
-
propnameUseTypeLibraries
Property name for type library usage.- See Also:
-
propnameLoadTypelibrariesCodelessSigs
Property name for loading codeless signatures from type libraries.- See Also:
-
propnameSignaturePackagesLoading
Property name for signature package loading.- See Also:
-
propnameCompilerIdentification
Property name for compiler identification.- See Also:
-
propnameTailCallAnalysisStyle
Property name for tail-call analysis style.- See Also:
-
propnameSwitchAnalysisStyle
Property name for switch analysis style.- See Also:
-
propnamePreferHexAddresses
Property name for hexadecimal address rendering preference.- See Also:
-
propnamePerformFakeRoutineCallAnalysis
Property name for fake routine call analysis.- See Also:
-
propnameApplyAndroidNativePrototypes
Property name for applying Android native prototypes.- See Also:
-
propnameCreatePackagesFromRoutineNames
Property name for creating packages from routine names.- See Also:
-
-
Constructor Details
-
AbstractNativeDisassemblerPlugin
Create a native disassembler plugin.- Parameters:
type- plugin type identifierpriority- plugin priority
-
-
Method Details
-
canBeProcessedOutsideCodeObject
public boolean canBeProcessedOutsideCodeObject()The default implementation returns true: native assemblies or assemblies treated as native can be processed outside of a container file (aka, a code object, such as a PE or ELF file0.- Specified by:
canBeProcessedOutsideCodeObjectin interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>- Returns:
- true if raw machine code can be processed without a code object
-
canProcessELF
public boolean canProcessELF(int machineId, boolean isELF64) The default implementation returns false.- Specified by:
canProcessELFin interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>- Parameters:
machineId- ELF machine identifierisELF64- true for 64-bit ELF objects- Returns:
- true if the ELF machine type can be processed
-
canProcessPE
public boolean canProcessPE(int machineId, boolean isPE64) The default implementation returns false.- Specified by:
canProcessPEin interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>- Parameters:
machineId- PE/COFF machine identifierisPE64- true for 64-bit PE objects- Returns:
- true if the PE/COFF machine type can be processed
-
getProcessorTypes
The default implementation returns an empty collection.- Specified by:
getProcessorTypesin interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>- Returns:
- a list, possibly empty
-
getCallingConvention
The default implementation returns null. JEB will attempt to determine the calling convention on its own.- Specified by:
getCallingConventionin interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>- Parameters:
parent- parent unit creator- Returns:
- calling convention, or null if it should be inferred
-
toString
-