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 TypeInterfaceDescriptioninterfaceINativeCodeUnit<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 TypeClassDescriptionclassAddressableInstruction<InsnType extends IInstruction>Decorator that makesaddress-lessinstructionsaddressable.classDFA4<InsnType extends IInstruction>Lean Data Flow Analysis (DFA) object implementation.interfaceIBasicBlock<InsnType extends IInstruction>Generic interface for CFG's basic block objects.interfaceIBasicBlockSkeleton<InsnType extends IInstruction>Generic interface for basic block builders.interfaceIControlFlowGraph<InsnType extends IInstruction,Block extends IBasicBlock<InsnType>> Generic interface for control flow graph (CFG) objects.interfaceIDFA<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 TypeInterfaceDescriptioninterfaceAn addressable instruction.interfaceA resizable instruction can have itssizemodified after creation.Classes in com.pnfsoftware.jeb.core.units.code that implement IInstructionModifier and TypeClassDescriptionclassAddressableInstruction<InsnType extends IInstruction>Decorator that makesaddress-lessinstructionsaddressable.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 IInstructionOperandInstructionUtil.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 booleanCFGUtil.canReach(IBasicBlock<? extends IInstruction> from, IBasicBlock<? extends IInstruction> to) Determine whether a regular path exists between a source block and a destination block.static booleanCFGUtil.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 booleanCFGUtil.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 booleanCFGUtil.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 intCFGUtil.countDeepInputs(IBasicBlock<? extends IInstruction> b, int maxdepth) Count regular the number of top-level input blocks leading to the provided block.protected StringCFGUtil.DotFileGenerator.generateEdgeLabel(IBasicBlock<? extends IInstruction> src, int outEdgeIndex) protected StringCFGUtil.DotFileGenerator.generateIrregularEdgeLabel(IBasicBlock<? extends IInstruction> src, int outEdgeIndex) protected StringCFGUtil.DotFileGenerator.generateNodeBackgroundColor(IBasicBlock<? extends IInstruction> blk) protected StringCFGUtil.DotFileGenerator.generateNodeTextColor(IBasicBlock<? extends IInstruction> blk) static intInstructionUtil.getSizeOf(List<? extends IInstruction> insns) Compute the size of all the instruction list.static intInstructionUtil.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 TypeInterfaceDescriptioninterfaceDefinition 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 TypeClassDescriptionclassAbstractNativeDecompilerPlugin<InsnType extends IInstruction>Base implementation of anINativeDecompilerPlugin.classAbstractNativeDisassemblerPlugin<InsnType extends IInstruction>Base implementation of aINativeDisassemblerPlugin.classAbstractNativePlugin<InsnType extends IInstruction>Common implementation for native plugins (disassemblers,gendec-based decompilers).interfaceINativeDecompilerPlugin<InsnType extends IInstruction>Definition of a native decompiler plugin.interfaceINativeDisassemblerPlugin<InsnType extends IInstruction>Native disassembler plugins.interfaceINativePlugin<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 TypeMethodDescriptionlongLinuxSyscallResolver.getSyscallRegisterId(IInstruction insn) Retrieve the register ID where the syscall number is storedbooleanLinuxSyscallResolver.isSyscall(IInstruction insn) Indicate is anIInstructionis 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 TypeClassDescriptionclassAbstractAnalyzerExtension<InsnType extends IInstruction>Extension of theINativeCodeAnalyzer.interfaceINativeCodeAdvancedAnalyzer<InsnType extends IInstruction>Definition of the advanced (optional) code analyzer, controlled by theINativeCodeAnalyzer.interfaceINativeCodeAnalyzer<InsnType extends IInstruction>Definition of a code analyzer.interfaceINativeCodeAnalyzerExtension<InsnType extends IInstruction>Definition ofanalyzerextensions.interfaceINativeCodeAnalyzerExtensionsManager<InsnType extends IInstruction>Interface for the extensions manager of theINativeCodeAnalyzer.interfaceINativeCodeModel<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 TypeClassDescriptionclassAbstractCFGReorganizer<InsnType extends IInstruction>Facility for CFG graph nodes reordering.classBasicBlock<InsnType extends IInstruction>This class represents a basic block of generic instructions.classCFG<InsnType extends IInstruction>This class represents a Control Flow Graph for a method (routine) or any body of code.classCFGFormatter<InsnType extends IInstruction>Customizable CFG formatter.classCFGVerifier<InsnType extends IInstruction>Verifier of control flow graphs.interfaceIFormattingContextFactory<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, Deque<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 TypeClassDescriptionclassAbstractConverter<InsnType extends IInstruction>Skeleton class for code converters.classConverterInstructionEntry<InsnType extends IInstruction>Utility class holding a native instruction being converted to IR.interfaceIEConverter<InsnType extends IInstruction>Definition of an IR expression converter, used by the generic decompiler to convert native machine code to an intermediate representation.interfaceINativeDecompilerUnit<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 TypeInterfaceDescriptioninterfaceIR expression representing an assignment.interfaceIR statement used to represent calls to sub-routines.interfaceIR expression representing an intra-procedural jump to a fixed IR target.interfaceA conditional branching instruction to an arbitrary IR representing a native address.interfaceBase interface used to represent IR short or long jumps.interfaceA no-operation IR instruction.interfaceA routine terminator.interfaceBase class for all IR statements.interfaceSwitch (branch to N sites) IR statement.interfaceSpecial 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 BooleanIEEmulatorHooks.evaluateAt(EEmulator emu, long addr, IInstruction hintNativeStm) This hook is called before a native instruction is converted and evaluated.default LongIEEmulatorHooks.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 BooleanIEEmulatorHooks.evaluateUntranslated(EEmulator emu, IEUntranslatedInstruction stm, IInstruction nativeStm) This hook is called when an instruction conversion produced anIEUntranslatedInstructionIR.EEmulator.hooksEvaluateAt(long addr, IInstruction hintNativeStm) booleanEEmulator.hooksEvaluateSyscall(long addr, IInstruction insn) EEmulator.hooksEvaluateUntranslated(IEUntranslatedInstruction stm, IInstruction insn) default voidIEEmulatorHooks.postEvaluateAt(EEmulator emu, long addr, IInstruction hintNativeStm, long reqid, boolean result) default voidIEEmulatorHooks.postEvaluateSyscall(EEmulator emu, long addr, IInstruction nativeStm, int syscallNum, String syscallName, INativeMethodItem syscallRoutine, List<Long> args, long reqid, long result) default voidIEEmulatorHooks.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 TypeClassDescriptionclassAbstractInstructionManager<T extends IInstruction>A skeleton class used to create instruction managers.classAbstractProcessor<InsnType extends IInstruction>An abstract implementation of aprocessor.interfaceIProcessor<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 TypeClassDescriptionclassAbstractInstruction<T extends IInstructionOperand>A skeleton implementation forinstructions.Methods in com.pnfsoftware.jeb.core.units.code.asm.processor with parameters of type IInstructionModifier and TypeMethodDescriptionAbstractInstructionOperandGeneric.format(IInstruction insn, long address) protected CharSequenceAbstractInstructionOperandGeneric.formatOperand(IInstruction insn, long address) protected CharSequenceAbstractInstructionOperandList.formatOperand(IInstruction insn, long address) static IInstructionOperandInstructionUtil.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 TypeClassDescriptionclassGenericCodeFormatter<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 TypeMethodDescriptionvoidNativeSignatureDBManager.activateAutoSigningMode(INativeCodeAnalyzer<IInstruction> gca) voidNativeSignatureDBManager.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) booleanNativeSignatureDBManager.isAutoSigningModeActivated(INativeCodeAnalyzer<IInstruction> gca) voidNativeSignatureDBManager.loadDefaultPackages(INativeCodeAnalyzer<IInstruction> gca) Loads in memory the available packages suitable for the given analysis.booleanNativeSignatureDBManager.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.voidNativeSignatureDBManager.registerAnalyzer(INativeCodeAnalyzer<IInstruction> gca) Register an analyzer to be handled by this manager.voidNativeSignatureDBManager.setUserSelectedPackage(INativeCodeAnalyzer<IInstruction> analyzer, NativeSignaturePackageEntry userSelectedPackage) voidNativeSignatureDBManager.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) booleanCodelessSignatureManager.importState(INativeCodeUnit<IInstruction> codeUnit, MatchingState state) booleanCodelessSignatureManager.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 TypeInterfaceDescriptioninterfaceICodeResolver<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()