Interface IInstructionAugmenter

All Known Subinterfaces:
INativeCodeModel<InsnType>

public interface IInstructionAugmenter
Provide additional elements for instructions, resulting from program analysis.
  • Method Summary

    Modifier and Type
    Method
    Description
    getDynamicBranchResolution(long instructionAddress)
    This routine can be called on any instruction: a regular or seemingly regular instruction; a flow breaker; a call-to-sub.
    getRegisterValueResolution(long instructionAddress)
    This routine can be called on any instruction.
    boolean
    isArtificialEndOfBlock(long instructionAddress)
    Force the end of a basic block, regardless of flow information.
    boolean
    isReversedBranchSemantic(long instructionAddress)
    Determine whether the branching instruction at the provided address, if there is one, should have its branch semantics reversed, that is, a flow-breaker should be interpreted as a call-to-sub, whereas a call-to-sub should be interpreted as flow-breaker.
  • Method Details

    • isArtificialEndOfBlock

      boolean isArtificialEndOfBlock(long instructionAddress)
      Force the end of a basic block, regardless of flow information.
      Parameters:
      instructionAddress -
      Returns:
    • isReversedBranchSemantic

      boolean isReversedBranchSemantic(long instructionAddress)
      Determine whether the branching instruction at the provided address, if there is one, should have its branch semantics reversed, that is, a flow-breaker should be interpreted as a call-to-sub, whereas a call-to-sub should be interpreted as flow-breaker.
      Parameters:
      instructionAddress -
      Returns:
    • getDynamicBranchResolution

      IBranchResolution getDynamicBranchResolution(long instructionAddress)
      This routine can be called on any instruction: a regular or seemingly regular instruction; a flow breaker; a call-to-sub. It is used to provide or augment the list of targets in case of a branching operation. This method may provide a resolved target or a list of candidate targets for the callsite.
      Parameters:
      instructionAddress -
      Returns:
    • getRegisterValueResolution

      IRegistersResolution getRegisterValueResolution(long instructionAddress)
      This routine can be called on any instruction. It is used to provide candidate values for the registers defined and used by the instruction.
      Parameters:
      instructionAddress -
      Returns: