Class AbstractNativeDecompilerPlugin<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.AbstractNativeDecompilerPlugin<InsnType>
- Type Parameters:
InsnType- instruction type handled by the decompiler plugin
- All Implemented Interfaces:
IPlugin,INativeDecompilerPlugin<InsnType>,INativePlugin<InsnType>,IUnitPlugin
public abstract class AbstractNativeDecompilerPlugin<InsnType extends IInstruction>
extends AbstractNativePlugin<InsnType>
implements INativeDecompilerPlugin<InsnType>
Base implementation of an
INativeDecompilerPlugin. Decompiler plugins should extend
this class.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringProperty name for the AST optimizer maximum run count.static final StringProperty name for decryptor support.static final StringProperty name for enabling deobfuscators.static final StringProperty name for enabling external plugins.static final StringProperty name for enabling unsafe optimizers.static final StringProperty name for the IR optimizer maximum run count.static final StringProperty name for the list of disabled external plugins.static final StringProperty name for the memory resolution policy.static final StringProperty name for the per-method decompilation timeout.static final StringProperty name for keeping the next decompilation IR.static final StringProperty name for the maximum reconversion count.static final StringProperty name for selecting the structurer implementation version.static final StringProperty name for using friendly variable names.static final StringProperty name for using well-known literal names.Fields inherited from class com.pnfsoftware.jeb.core.units.AbstractUnitPlugin
pdm, pm, priority, type -
Constructor Summary
ConstructorsConstructorDescriptionAbstractNativeDecompilerPlugin(String type, double priority) Create a native decompiler plugin. -
Method Summary
Modifier and TypeMethodDescriptiongetGlobalAnalyzer(INativeDecompilerUnit<InsnType> decompiler) The default implementation returns null.getPrimaryExtension(INativeDecompilerUnit<InsnType> decompiler) The default implementation returns null.getSourceCustomizer(INativeDecompilerUnit<InsnType> decompiler) The default implementation returns null.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, toString, wait, wait, waitMethods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.INativeDecompilerPlugin
getConverterMethods 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
-
propnameMethodDecompilationTimeout
Property name for the per-method decompilation timeout.- See Also:
-
propnameMemoryResolutionPolicy
Property name for the memory resolution policy.- See Also:
-
propnameReconversionMaxCount
Property name for the maximum reconversion count.- See Also:
-
propnameIROptimizerMaxRunCount
Property name for the IR optimizer maximum run count.- See Also:
-
propnameEnableUnsafeOptimizers
Property name for enabling unsafe optimizers.- See Also:
-
propnameDecryptorSupport
Property name for decryptor support.- See Also:
-
propnameEnableDeobfuscators
Property name for enabling deobfuscators.- See Also:
-
propnameASTOptimizerMaxRunCount
Property name for the AST optimizer maximum run count.- See Also:
-
propnameStructurerUseVersion
Property name for selecting the structurer implementation version.- See Also:
-
propnameUseFriendlyVariableNames
Property name for using friendly variable names.- See Also:
-
propnameUseWellKnownLiterals
Property name for using well-known literal names.- See Also:
-
propnameNextDecompKeepIR
Property name for keeping the next decompilation IR.- See Also:
-
propnameEnableExternalPlugins
Property name for enabling external plugins.- See Also:
-
propnameListOfDisabledExternalPlugins
Property name for the list of disabled external plugins.- See Also:
-
-
Constructor Details
-
AbstractNativeDecompilerPlugin
Create a native decompiler plugin.- Parameters:
type- plugin type identifierpriority- plugin priority
-
-
Method Details
-
getPrimaryExtension
The default implementation returns null. By default, a decompiler plugin does not provide a primary extension.- Specified by:
getPrimaryExtensionin interfaceINativeDecompilerPlugin<InsnType extends IInstruction>- Parameters:
decompiler- decompiler unit that owns the extension- Returns:
- an optional, primary decompiler extension
-
getGlobalAnalyzer
The default implementation returns null. By default, a decompiler plugin does not provide a global analyzer.- Specified by:
getGlobalAnalyzerin interfaceINativeDecompilerPlugin<InsnType extends IInstruction>- Parameters:
decompiler- decompiler unit requesting the analyzer- Returns:
- optional global analyzer, or null
-
getSourceCustomizer
The default implementation returns null. By default, a decompiler plugin does not provide a source customizer.- Specified by:
getSourceCustomizerin interfaceINativeDecompilerPlugin<InsnType extends IInstruction>- Parameters:
decompiler- decompiler unit requesting the customizer- Returns:
- optional source customizer, or null
-