Uses of Interface
com.pnfsoftware.jeb.core.units.code.IInstruction
Packages that use IInstruction
Package
Description
Types used to implement and access data identifiers, parsers, code analyzers, disassemblers,
decompilers, and debuggers.
Types related to JEB code plugins, including disassemblers, decompilers, and debuggers.
Types representing an Dex structures and Dalvik code.
This package contains types used to publicly access and manipulate JEB's DEX Decompiler (referred
to as
dexdec
) Intermediate Representation (IR) objects.This package and sub-packages contains types used by the native code analysis pipeline, including
gendec
(the generic decompiler).Types relating to the disassembler engine.
Control-flow graph types specific to native code.
This package and its sub-packages contain the types used to access
gendec
, JEB's generic
decompiler.Types used to create and access
gendec
's IR (Intermediate Representation).IR emulator facility.
Native code items, including code items and data items.
Types used to define and represent processors' instructions, operands, and registers.
Types used during the generation of native code disassembly.
Types for library code signatures (siglib) generation and identification.
Types for "code-less" signatures.
Types used for (limtied) native instruction simulation.
Types used by debugger plugins.
-
Uses of IInstruction in com.pnfsoftware.jeb.core.units
Classes in com.pnfsoftware.jeb.core.units with type parameters of type IInstructionModifier and TypeInterfaceDescriptioninterface
INativeCodeUnit<InsnType extends IInstruction>
Specialized code unit that manages a native code processor and uses a virtual memory. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code
Classes in com.pnfsoftware.jeb.core.units.code with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AddressableInstruction<InsnType extends IInstruction>
Decorator that makesaddress-less
instructionsaddressable
.class
DFA4<InsnType extends IInstruction>
Lean Data Flow Analysis (DFA) object implementation.interface
IBasicBlock<InsnType extends IInstruction>
Generic interface for CFG's basic block objects.interface
IBasicBlockSkeleton<InsnType extends IInstruction>
Generic interface for basic block builders.interface
IControlFlowGraph<InsnType extends IInstruction,
Block extends IBasicBlock<InsnType>> Generic interface for control flow graph (CFG) objects.interface
IDFA<InsnType extends IInstruction>
Specification of a data flow analysis objects for control flow graphs.Subinterfaces of IInstruction in com.pnfsoftware.jeb.core.units.codeModifier and TypeInterfaceDescriptioninterface
An addressable instruction.interface
A resizable instruction can have itssize
modified after creation.Classes in com.pnfsoftware.jeb.core.units.code that implement IInstructionModifier and TypeClassDescriptionclass
AddressableInstruction<InsnType extends IInstruction>
Decorator that makesaddress-less
instructionsaddressable
.Methods in com.pnfsoftware.jeb.core.units.code that return IInstructionMethods in com.pnfsoftware.jeb.core.units.code that return types with arguments of type IInstructionModifier and TypeMethodDescriptionList<? extends IInstruction>
ICodeMethod.getInstructions()
Get the list of instructions of the method's body.Methods in com.pnfsoftware.jeb.core.units.code with parameters of type IInstructionModifier and TypeMethodDescriptionIInstructionOperand.format
(IInstruction insn, long address) Format the operand, assuming it is used by an instruction at the provided address.static IInstructionOperand
InstructionUtil.getOperand
(IInstruction insn, int index) Safely retrieve an operand.static <T extends IInstructionOperand>
TInstructionUtil.getOperand
(IInstruction insn, int index, Class<T> c) Safely retrieve an operand of the expected type.Method parameters in com.pnfsoftware.jeb.core.units.code with type arguments of type IInstructionModifier and TypeMethodDescriptionstatic boolean
CFGUtil.canReach
(IBasicBlock<? extends IInstruction> from, IBasicBlock<? extends IInstruction> to) Determine whether a regular path exists between a source block and a destination block.static boolean
CFGUtil.canReach
(IBasicBlock<? extends IInstruction> from, IBasicBlock<? extends IInstruction> to, boolean alsoFollowIrregularFlow) Determine whether a path exists between a source block and a destination block.static boolean
CFGUtil.canReach
(IBasicBlock<? extends IInstruction> from, IBasicBlock<? extends IInstruction> to, boolean alsoFollowIrregularFlow, Collection<IBasicBlock<? extends IInstruction>> stopperBlocks) Determine whether a path exists between a source block and a destination block.static boolean
CFGUtil.canReach
(IBasicBlock<? extends IInstruction> from, IBasicBlock<? extends IInstruction> to, boolean alsoFollowIrregularFlow, Collection<IBasicBlock<? extends IInstruction>> stopperBlocks) Determine whether a path exists between a source block and a destination block.static int
CFGUtil.countDeepInputs
(IBasicBlock<? extends IInstruction> b, int maxdepth) Count regular the number of top-level input blocks leading to the provided block.protected String
CFGUtil.DotFileGenerator.generateEdgeLabel
(IBasicBlock<? extends IInstruction> src, int outEdgeIndex) protected String
CFGUtil.DotFileGenerator.generateIrregularEdgeLabel
(IBasicBlock<? extends IInstruction> src, int outEdgeIndex) protected String
CFGUtil.DotFileGenerator.generateNodeBackgroundColor
(IBasicBlock<? extends IInstruction> blk) protected String
CFGUtil.DotFileGenerator.generateNodeTextColor
(IBasicBlock<? extends IInstruction> blk) static int
InstructionUtil.getSizeOf
(List<? extends IInstruction> insns) Compute the size of all the instruction list.static int
InstructionUtil.getSizeUntil
(List<? extends IInstruction> insns, int limit) Compute the size of the instruction list until nth index.Constructor parameters in com.pnfsoftware.jeb.core.units.code with type arguments of type IInstructionModifierConstructorDescriptionBlockGroup
(CFG<? extends IInstruction> cfg, long blkoffStart, long blkoffStopper) RegionFinder
(CFG<? extends IInstruction> cfg, long entry, long output) Build a finder for a region having a single output, for which the region blocks cannot loop back to the entry.RegionFinder
(CFG<? extends IInstruction> cfg, long entry, Set<Long> outputs, boolean canLoopBackToEntry) Build a region finder. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.android.dex
Subinterfaces of IInstruction in com.pnfsoftware.jeb.core.units.code.android.dexModifier and TypeInterfaceDescriptioninterface
Definition of a Dalvik instruction. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.android.ir
Subinterfaces of IInstruction in com.pnfsoftware.jeb.core.units.code.android.ir -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm
Classes in com.pnfsoftware.jeb.core.units.code.asm with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AbstractNativeDecompilerPlugin<InsnType extends IInstruction>
Base implementation of anINativeDecompilerPlugin
.class
AbstractNativeDisassemblerPlugin<InsnType extends IInstruction>
Base implementation of aINativeDisassemblerPlugin
.class
AbstractNativePlugin<InsnType extends IInstruction>
Common implementation for native plugins (disassemblers,gendec
-based decompilers).interface
INativeDecompilerPlugin<InsnType extends IInstruction>
Definition of a native decompiler plugin.interface
INativeDisassemblerPlugin<InsnType extends IInstruction>
Native disassembler plugins.interface
INativePlugin<InsnType extends IInstruction>
Native plugins consist of native disassembler and native decompiler plugins.Methods in com.pnfsoftware.jeb.core.units.code.asm with parameters of type IInstructionModifier and TypeMethodDescriptionlong
LinuxSyscallResolver.getSyscallRegisterId
(IInstruction insn) Retrieve the register ID where the syscall number is storedboolean
LinuxSyscallResolver.isSyscall
(IInstruction insn) Indicate is anIInstruction
is a syscall.Constructor parameters in com.pnfsoftware.jeb.core.units.code.asm with type arguments of type IInstructionModifierConstructorDescriptionCreate a builder. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.analyzer
Classes in com.pnfsoftware.jeb.core.units.code.asm.analyzer with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AbstractAnalyzerExtension<InsnType extends IInstruction>
Extension of theINativeCodeAnalyzer
.interface
INativeCodeAdvancedAnalyzer<InsnType extends IInstruction>
Definition of the advanced (optional) code analyzer, controlled by theINativeCodeAnalyzer
.interface
INativeCodeAnalyzer<InsnType extends IInstruction>
Definition of a code analyzer.interface
INativeCodeAnalyzerExtension<InsnType extends IInstruction>
Definition ofanalyzer
extensions.interface
INativeCodeAnalyzerExtensionsManager<InsnType extends IInstruction>
Interface for the extensions manager of theINativeCodeAnalyzer
.interface
INativeCodeModel<InsnType extends IInstruction>
Memory model manager fornative code unit
, normally handled by acode analyzer
. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.cfg
Classes in com.pnfsoftware.jeb.core.units.code.asm.cfg with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AbstractCFGReorganizer<InsnType extends IInstruction>
Facility for CFG graph nodes reordering.class
BasicBlock<InsnType extends IInstruction>
This class represents a basic block of generic instructions.class
CFG<InsnType extends IInstruction>
This class represents a Control Flow Graph for a method (routine) or any body of code.class
CFGFormatter<InsnType extends IInstruction>
Customizable CFG formatter.class
CFGVerifier<InsnType extends IInstruction>
Verifier of control flow graphs.interface
IFormattingContextFactory<InsnType extends IInstruction>
Customize instruction rendering via the generation of formatting-context objects.Methods in com.pnfsoftware.jeb.core.units.code.asm.cfg with type parameters of type IInstructionModifier and TypeMethodDescriptionstatic <T extends IInstruction>
booleanCFGUtil.compare
(int failmode, Comparator<T> comparator, CFG<T> cfg1, CFG<T> cfg2) Basic CFG comparison.static <T extends IInstruction>
booleanBasic CFG comparison.static <T extends IInstruction>
CFG<T>CFGUtil.duplicateShallow
(CFG<T> cfg) Shallow duplication of a CFG.static <T extends IInstruction>
Collection<BasicBlock<T>>CFGUtil.getReachableBlocks
(CFG<T> cfg) Collect the list of all blocks reachable from the entry point.static <T extends IInstruction>
intCFGUtil.removeUnreachableBlocks
(CFG<T> cfg) Remove all blocks not reachable from the entry-point.static <T extends IInstruction>
intCFGUtil.removeUnreachableBlocks
(CFG<T> cfg, List<BasicBlock<T>> tbr) Remove a list of blocks from the CFG. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Classes in com.pnfsoftware.jeb.core.units.code.asm.decompiler with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AbstractConverter<InsnType extends IInstruction>
Skeleton class for code converters.class
ConverterInstructionEntry<InsnType extends IInstruction>
Utility class holding a native instruction being converted to IR.interface
IEConverter<InsnType extends IInstruction>
Definition of an IR expression converter, used by the generic decompiler to convert native machine code to an intermediate representation.interface
INativeDecompilerUnit<InsnType extends IInstruction>
Top-level unit for native decompilers.Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler declared as IInstruction -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Subinterfaces of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.decompiler.irModifier and TypeInterfaceDescriptioninterface
IR expression representing an assignment.interface
IR statement used to represent calls to sub-routines.interface
IR expression representing an intra-procedural jump to a fixed IR target.interface
A conditional branching instruction to an arbitrary IR representing a native address.interface
Base interface used to represent IR short or long jumps.interface
A no-operation IR instruction.interface
A routine terminator.interface
Base class for all IR statements.interface
Switch (branch to N sites) IR statement.interface
Special IR statement that can be used to wrap non-standard, partially translated, or untranslated native code instructions. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator with parameters of type IInstructionModifier and TypeMethodDescriptiondefault Boolean
IEEmulatorHooks.evaluateAt
(EEmulator emu, long addr, IInstruction hintNativeStm) This hook is called before a native instruction is converted and evaluated.default Long
IEEmulatorHooks.evaluateSyscall
(EEmulator emu, long addr, IInstruction nativeStm, int syscallNum, String syscallName, INativeMethodItem syscallRoutine, List<Long> args) This higher-level hook is called when a system call type instruction is about to be executed.default Boolean
IEEmulatorHooks.evaluateUntranslated
(EEmulator emu, IEUntranslatedInstruction stm, IInstruction nativeStm) This hook is called when an instruction conversion produced anIEUntranslatedInstruction
IR.EEmulator.hooksEvaluateAt
(long addr, IInstruction hintNativeStm) boolean
EEmulator.hooksEvaluateSyscall
(long addr, IInstruction insn) EEmulator.hooksEvaluateUntranslated
(IEUntranslatedInstruction stm, IInstruction insn) default void
IEEmulatorHooks.postEvaluateAt
(EEmulator emu, long addr, IInstruction hintNativeStm, long reqid, boolean result) default void
IEEmulatorHooks.postEvaluateSyscall
(EEmulator emu, long addr, IInstruction nativeStm, int syscallNum, String syscallName, INativeMethodItem syscallRoutine, List<Long> args, long reqid, long result) default void
IEEmulatorHooks.postEvaluateUntranslated
(EEmulator emu, IEUntranslatedInstruction stm, IInstruction nativeStm, long reqid, Boolean result) -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.items
Methods in com.pnfsoftware.jeb.core.units.code.asm.items that return types with arguments of type IInstructionModifier and TypeMethodDescriptionCFG<? extends IInstruction>
INativeMethodDataItem.getCFG()
List<? extends IInstruction>
INativeMethodItem.getInstructions()
Retrieve a list of instructions for this method. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.processor
Classes in com.pnfsoftware.jeb.core.units.code.asm.processor with type parameters of type IInstructionModifier and TypeClassDescriptionclass
AbstractInstructionManager<T extends IInstruction>
A skeleton class used to create instruction managers.class
AbstractProcessor<InsnType extends IInstruction>
An abstract implementation of aprocessor
.interface
IProcessor<InsnType extends IInstruction>
Definition of a simple machine code processor or microcontroller.Classes in com.pnfsoftware.jeb.core.units.code.asm.processor that implement IInstructionModifier and TypeClassDescriptionclass
AbstractInstruction<T extends IInstructionOperand>
A skeleton implementation forinstruction
s.Methods in com.pnfsoftware.jeb.core.units.code.asm.processor with parameters of type IInstructionModifier and TypeMethodDescriptionAbstractInstructionOperandGeneric.format
(IInstruction insn, long address) protected CharSequence
AbstractInstructionOperandGeneric.formatOperand
(IInstruction insn, long address) protected CharSequence
AbstractInstructionOperandList.formatOperand
(IInstruction insn, long address) static IInstructionOperand
InstructionUtil.getOperandByGlobalIndex
(IInstruction insn, int opndIndexGlobal) AbstractInstructionOperandGeneric.getPrefix
(IInstruction insn) AbstractInstructionOperandList.getPrefix
(IInstruction insn) IInstructionOperandGeneric.getPrefix
(IInstruction insn) Get the optional prefix to be prepended to the formatted operand.AbstractInstructionOperandGeneric.getSuffix
(IInstruction insn) AbstractInstructionOperandList.getSuffix
(IInstruction insn) IInstructionOperandGeneric.getSuffix
(IInstruction insn) Get the optional suffix to be appended to the formatted operand. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.render
Classes in com.pnfsoftware.jeb.core.units.code.asm.render with type parameters of type IInstructionModifier and TypeClassDescriptionclass
GenericCodeFormatter<InsnType extends IInstruction>
A base formatter used by theINativeCodeUnit
. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.sig
Method parameters in com.pnfsoftware.jeb.core.units.code.asm.sig with type arguments of type IInstructionModifier and TypeMethodDescriptionvoid
NativeSignatureDBManager.activateAutoSigningMode
(INativeCodeAnalyzer<IInstruction> gca) void
NativeSignatureDBManager.deactivateAutoSigningMode
(INativeCodeAnalyzer<IInstruction> gca) NativeSignatureGenerator.generateSignature
(INativeCodeAnalyzer<IInstruction> analyzer, INativeMethodItem routine, Set<NativeFeatureSignerID> clientProvidedFeatureSigners, Set<NativeAttributeSignerID> clientProvidedAttributeSigners) Generate a new signature for a routine, following the default strategy.ISigningStrategy.getAttributeSigners
(INativeCodeAnalyzer<IInstruction> analyzer, INativeItem item) Provides the IDs of the attribute signers that should be used to collect information from the given native item.ISigningStrategy.getFeatureSigners
(INativeCodeAnalyzer<IInstruction> analyzer, INativeItem item) Provides the IDs of the feature signers that should be used to compute the features of the given native item.NativeSignatureDBManager.getUserSelectedPackage
(INativeCodeAnalyzer<IInstruction> analyzer) boolean
NativeSignatureDBManager.isAutoSigningModeActivated
(INativeCodeAnalyzer<IInstruction> gca) void
NativeSignatureDBManager.loadDefaultPackages
(INativeCodeAnalyzer<IInstruction> gca) Loads in memory the available packages suitable for the given analysis.boolean
NativeSignatureDBManager.loadPackage
(INativeCodeAnalyzer<IInstruction> gca, NativeSignaturePackageEntry entry) Loads a specific package for the given analysis.NativeSignatureDBManager.match
(INativeCodeAnalyzer<? extends IInstruction> _gca, Collection<INativeMethodDataItem> routines, boolean uniqueMatchOnly, boolean maximumConfidenceLevel, boolean includeAlreadyMatched) Match a list of native routines against the currently loaded signatures packages for this analysis.void
NativeSignatureDBManager.registerAnalyzer
(INativeCodeAnalyzer<IInstruction> gca) Register an analyzer to be handled by this manager.void
NativeSignatureDBManager.setUserSelectedPackage
(INativeCodeAnalyzer<IInstruction> analyzer, NativeSignaturePackageEntry userSelectedPackage) void
NativeSignatureDBManager.unregisterAnalyzer
(INativeCodeAnalyzer<IInstruction> gca) Unregister an analyzer handled by this manager. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.sig.codeless
Methods in com.pnfsoftware.jeb.core.units.code.asm.sig.codeless that return types with arguments of type IInstructionModifier and TypeMethodDescriptionCodelessSignatureManager.getMatchableUnit()
Search first suitable code unit that can be matched, in current project.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.sig.codeless with type arguments of type IInstructionModifier and TypeMethodDescriptionCodelessSignatureManager.identifyLibraries
(INativeCodeUnit<IInstruction> codeUnit) boolean
CodelessSignatureManager.importState
(INativeCodeUnit<IInstruction> codeUnit, MatchingState state) boolean
CodelessSignatureManager.isMatched
(INativeCodeUnit<IInstruction> codeUnit, CodelessSignaturePackageEntry entry) Check if a signature package has been matched against given code unit.CodelessSignatureManager.match
(INativeCodeUnit<IInstruction> codeUnit, CodelessSignaturePackageEntry entry) Match given unit against given reference model. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.asm.simulator
Classes in com.pnfsoftware.jeb.core.units.code.asm.simulator with type parameters of type IInstructionModifier and TypeInterfaceDescriptioninterface
ICodeResolver<InsnType extends IInstruction>
A resolver attempts to determine the actual value of symbols and items used by instruction artifacts. -
Uses of IInstruction in com.pnfsoftware.jeb.core.units.code.debug
Methods in com.pnfsoftware.jeb.core.units.code.debug that return types with arguments of type IInstructionModifier and TypeMethodDescriptionIProcessor<? extends IInstruction>
IDebuggerUnit.getProcessor()