Uses of Interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement
Packages that use IEStatement
Package
Description
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).Types used by the IR template and IR compiler.
Types specific to
gendec's IR optimizers.-
Uses of IEStatement in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler with type parameters of type IEStatementMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return types with arguments of type IEStatementModifier and TypeMethodDescriptionIERoutineContext.buildCfg(List<IEStatement> statements) Build an IR-CFG using the provided list of statements, and set the resulting CFG as the current CFG for this converted routine.IERoutineContext.buildCfg(List<IEStatement> statements, boolean subroutineCallNotBreaking, boolean assignToContext) Build an IR-CFG from a list of statements.final List<IEStatement>AbstractConverter.convertBlockForTest(BasicBlock<InsnType> b) Reserved for testing.IERoutineContext.getCfg()IERoutineContext.getStatements()Retrieve the raw list of converted IR-statements.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler with parameters of type IEStatementModifier and TypeMethodDescriptionAbstractNativeDecompilerExtension.augmentSimulationContext(INativeDecompilerContext decompiler, IERoutineContext ctx, IESimulationResults simulationContext, long offset, IEStatement insn, EState state) The default implementation does nothing and requests continuation.INativeDecompilerExtension.augmentSimulationContext(INativeDecompilerContext decompiler, IERoutineContext ctx, IESimulationResults simulationContext, long offset, IEStatement insn, EState state) This method is called during the early simulation phase (unoptimized IR emulation) in the decompilation pipeline.AbstractConverter.buildFailsafePrototype(IERoutineContext ctx, IEStatement stm) The default implementation provides a no-arg/no-return prototype: "void __defaultCC ()".IEConverter.buildFailsafePrototype(IERoutineContext ctx, IEStatement stm) Create a simple, failsafe prototype for the given routine.IERoutineContext.createNop(IEStatement template) Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler with type arguments of type IEStatementModifier and TypeMethodDescriptionAbstractNativeDecompilerExtension.applyAdditionalTypes(IDecompiledMethod target, CFG<IEStatement> cfg) The default implementation does nothing and requests continuation.INativeDecompilerExtension.applyAdditionalTypes(IDecompiledMethod target, CFG<IEStatement> cfg) This method is called by the decompiler just before type propagation on the IR-CFG takes place.IERoutineContext.buildCfg(List<IEStatement> statements) Build an IR-CFG using the provided list of statements, and set the resulting CFG as the current CFG for this converted routine.IERoutineContext.buildCfg(List<IEStatement> statements, boolean subroutineCallNotBreaking, boolean assignToContext) Build an IR-CFG from a list of statements.protected voidAbstractConverter.convertBlock(BasicBlock<InsnType> b, List<IEStatement> interlist) Convert a basic block.IERoutineContext.getInputVariableForRegister(IDFA<IEStatement> dfa, long nativeRegId) IERoutineContext.getInputVariableForRegister(IDFA<IEStatement> dfa, IEVar reg) IERoutineContext.getOutputVariableForRegister(IDFA<IEStatement> dfa, long exitAddress, int nativeRegId) IERoutineContext.getOutputVariableForRegister(IDFA<IEStatement> dfa, long exitAddress, IEVar reg) protected final booleanAbstractConverter.insertOptionalEntryPointTrampoline(IERoutineContext ctx, List<IEStatement> irlist) For native routines that have their entry point in-the-middle (i.e., not at their lowest address), insert a syntheticIEJumpas the first instruction of the converted method.protected final booleanAbstractConverter.isPCRightValueCompatibleReturnValue(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric PCRightVal, IEGeneric expectedReturnAddress) Can be overridden by implementors when complex return expression matching is needed.protected final booleanAbstractConverter.isPCRightValueCompatibleReturnValue(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric PCRightVal, IEGeneric expectedReturnAddress) Can be overridden by implementors when complex return expression matching is needed.AbstractConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric target, IEGeneric expectedTarget) AbstractConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric target, IEGeneric expectedTarget) IEConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric callsite, IEGeneric expectedTarget) Normalize a branching expression.IEConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric callsite, IEGeneric expectedTarget) Normalize a branching expression.protected voidAbstractConverter.postBlockConversion(CFG<InsnType> cfg, BasicBlock<InsnType> b, List<IEStatement> interlist, int cnt) This method is called afterAbstractConverter.convertBlock(BasicBlock, List)is called.protected BasicBlock<InsnType>AbstractConverter.preBlockConversion(CFG<InsnType> cfg, BasicBlock<InsnType> b, List<IEStatement> interlist) This method is called beforeAbstractConverter.convertBlock(BasicBlock, List)is called.protected voidAbstractConverter.preRoutineConversion(INativeMethodItem routine, IERoutineContext ctx, List<IEStatement> irlist) Executed byconvertbefore converting the blocks.AbstractNativeDecompilerExtension.resolveVariableArgumentInformation(IERoutineContext ctx, CFG<IEStatement> cfg, int iblk, IWildcardPrototype proto) INativeDecompilerExtension.resolveVariableArgumentInformation(IERoutineContext ctx, CFG<IEStatement> cfg, int iblk, IWildcardPrototype proto) voidIERoutineContext.setCfg(CFG<IEStatement> cfg) voidIERoutineContext.setStatements(List<IEStatement> statements) Set the converted list of raw IR-statements.voidIERoutineContext.setStatements(List<IEStatement> statements, boolean verifyStatements, boolean replaceLeftAssignSlices, boolean buildCfg) Set the converted list of raw IR-statements.Constructor parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler with type arguments of type IEStatementModifierConstructorDescriptionConverterInstructionEntry(InsnType insn, long address, List<IEStatement> r, int irAddress) -
Uses of IEStatement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Subinterfaces of IEStatement 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.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.Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type parameters of type IEStatementMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return IEStatementModifier and TypeMethodDescriptiondefault IEStatementIEGeneric.asStatement()ELocation.getStatement()IEStatement.withLowerLevelAddress(long address) IEStatement.withLowerLevelAddresses(Collection<Long> addresses) Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return types with arguments of type IEStatementModifier and TypeMethodDescriptionstatic CFG<IEStatement>EUtil.expandStatementSize(IERoutineContext ectx, IEStatement stm0, int minSize) Expand thesizeof a statement.static CFG<IEStatement>EUtil.expandStatementSizes(IERoutineContext ectx, Collection<IEStatement> stmcoll, int minSize) Expand thesizesof a collection of statements.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IEStatementModifier and TypeMethodDescriptionstatic intEUtil.adjustBranchToIRInstruction(IEStatement stm, int currentTargetIROffset, int newTargetIROffset) voidIEStatement.copyLowerLevelAddresses(IEStatement srcStm) Copy (add) the native addresses of the instruction to this statement's mapping.voidIEStatement.copyProperties(IEStatement srcStm) Copy over the generic statement properties of the source statement onto this statement.static CFG<IEStatement>EUtil.expandStatementSize(IERoutineContext ectx, IEStatement stm0, int minSize) Expand thesizeof a statement.protected voidECFGFormatter.genAddress(StringBuilder sb, long address, IEStatement insn) protected voidECFGFormatter.genEOL(StringBuilder sb, long address, IEStatement insn) protected voidECFGFormatter.genPostAddress(StringBuilder sb, long address, IEStatement insn) protected voidECFGFormatter.genPostInstruction(StringBuilder sb, long address, IEStatement insn) protected voidECFGFormatter.genPreAddress(StringBuilder sb, long insnOffset, IEStatement insn) static IEMemEUtil.getAssigningFromMemory(IEStatement stm) static IEMemEUtil.getAssigningToMemory(IEStatement stm) static IEGenericEUtil.getAssignmentDestination(IEStatement stm) Retrieve the destination of anIEAssign(or null if is not an assignment).static IEGenericEUtil.getAssignmentSource(IEStatement stm) Retrieve the source of anIEAssign(or null if is not an assignment).static booleanEUtil.isCondEAssign(IEStatement e) static booleanEUtil.isConditionalJump(IEStatement e) static booleanEUtil.isExpressionModified(IEStatement insn, IEGeneric target, boolean defuse) static booleanEUtil.isPCAssign(IEStatement stm) Determine if the provided statement is a PC-assign:PC = ...static booleanEUtil.isSPAssign(IEStatement stm) Determine if the provided statement is a SP-assign:SP = ...orSP[slice] = ....static booleanEUtil.isSPAssignOrPCAssign(IEStatement stm) Determine if the provided statement is assigning the stack pointer or the program counter.static booleanEUtil.isUnconditionalJump(IEStatement e) static booleanEUtil.isVariableAssigned(IEStatement stm, IEVar var) Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type arguments of type IEStatementModifier and TypeMethodDescriptionstatic BooleanEUtil.checkCallReturnAddress(IERoutineContext ctx, CFG<IEStatement> cfg, BasicBlock<IEStatement> b, int insnIndex) static BooleanEUtil.checkCallReturnAddress(IERoutineContext ctx, CFG<IEStatement> cfg, BasicBlock<IEStatement> b, int insnIndex) static voidEUtil.dump(CFG<IEStatement> cfg, String filename) Dump an IR-CFG to a Graphvizdotfile in the user's temporary folder.static voidEUtil.dump(CFG<IEStatement> cfg, String filename, String title) Dump an IR-CFG to a Graphvizdotfile in the user's temporary folder.static CFG<IEStatement>EUtil.expandStatementSizes(IERoutineContext ectx, Collection<IEStatement> stmcoll, int minSize) Expand thesizesof a collection of statements.ECFGFormatter.format(boolean formatAddresses, boolean formatChains, boolean formatInOut, IDFA<IEStatement> dfa, IFormattingContextFactory<IEStatement> fcf) ECFGFormatter.format(boolean formatAddresses, boolean formatChains, boolean formatInOut, IDFA<IEStatement> dfa, IFormattingContextFactory<IEStatement> fcf) static StringEUtil.formatStatements(List<? extends IEStatement> irlist) static AddressConversionListsAddressConversionLists.generateFromCFG(CFG<IEStatement> cfg) Generate conversion lists from a CFG.static AddressConversionListsAddressConversionLists.generateFromList(List<IEStatement> stmlist) static booleanEUtil.isAssignedIn(BasicBlock<IEStatement> bb, IEGeneric checkedDst) Check that an IRE is assigned in a basic block.static booleanEUtil.isTrampoline(BasicBlock<IEStatement> bb) static booleanEUtil.resolveExpressionsBackward(Object name, IEConverter<?> conv, List<IEStatement> r, IEGeneric... targets) Apply a list of IEStatements to user targets, resolving expression starting from lastIEStatementto first.static voidEUtil.setLowerLevelAddress(long addr, List<IEStatement> list) static voidEUtil.setLowerLevelAddress(long addr, List<IEStatement> list, int fromIndex, int toIndex) static voidEUtil.setLowerLevelAddressIfNone(long addr, List<IEStatement> list) static voidEUtil.setLowerLevelAddressIfNone(long addr, List<IEStatement> list, int fromIndex, int toIndex) static voidEUtil.verify(CFG<IEStatement> cfg) Verify an IR-CFG.Constructor parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type arguments of type IEStatementModifierConstructorDescriptionECFGFormatter(CFG<IEStatement> cfg) ECFGFormatter(CFG<IEStatement> cfg, IVariableProvider varprv, boolean formatFineGrained) -
Uses of IEStatement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler that return IEStatementMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler that return types with arguments of type IEStatementModifier and TypeMethodDescriptionECompiler.compileCfg(IERoutineContext ctx, String... slist) Compile a sequence of statements and return the CFG.ECompiler.compileCfg(String... slist) Compile a sequence of statements and return the CFG.EPatternMatcher.Result.getCfg()EPatternMatcher.getInputCfg()Constructors in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with parameters of type IEStatementConstructor parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with type arguments of type IEStatementModifierConstructorDescriptionEPatternMatcher(EPatternCompiler.EPattern pattern, CFG<IEStatement> cfg, IERoutineContext ctx) -
Uses of IEStatement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt
Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt declared as IEStatementModifier and TypeFieldDescriptionprotected IEStatementAbstractEExpressionOptimizer.currentStatementThis field holds a reference to the top-level parent statement of the expression currently being optimized.Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with type parameters of type IEStatementMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt that return IEStatementModifier and TypeMethodDescriptionprotected abstract IEStatementAbstractEStatementOptimizer.optimizeStatement(IEStatement stm) Attempt to optimize a statement.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with parameters of type IEStatementModifier and TypeMethodDescriptionprotected abstract IEStatementAbstractEStatementOptimizer.optimizeStatement(IEStatement stm) Attempt to optimize a statement.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with type arguments of type IEStatementModifier and TypeMethodDescriptionbooleanIEOptFilterCanDiscard.check(CFG<IEStatement> cfg, long insnAddress, int varDefId) protected booleanAbstractEOptimizer.deleteUnreachableTrampoline(BasicBlock<IEStatement> b) protected abstract intAbstractEBlockOptimizer.optimizeBlock(BasicBlock<IEStatement> b) Attempt to optimize a basic block.