public interface

IInstructionAugmenter

com.pnfsoftware.jeb.core.units.code.asm.analyzer.IInstructionAugmenter
Known Indirect Subclasses

Class Overview

Provide additional elements for instructions, resulting from program analysis.

Summary

Public Methods
abstract 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.
abstract IRegistersResolution getRegisterValueResolution(long instructionAddress)
This routine can be called on any instruction.
abstract boolean isArtificialEndOfBlock(long instructionAddress)
Determine if the instruction is the last instruction of a block -- yet it is not a target-less flow-breaker.
abstract boolean isCallNotReturning(long instructionAddress)
This routine should be called iff getRoutineCall(long) indicated that the flow is broken.

Public Methods

public abstract 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.

public abstract 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.

public abstract boolean isArtificialEndOfBlock (long instructionAddress)

Determine if the instruction is the last instruction of a block -- yet it is not a target-less flow-breaker.

public abstract boolean isCallNotReturning (long instructionAddress)

This routine should be called iff getRoutineCall(long) indicated that the flow is broken. In such a case, this method will determine if yes or no the fall-through address will be executed, ie whether or not the method returns.