Table of Contents

Interface IStateTransitioner<TInstruction>

Namespace
Echo.DataFlow.Construction
Assembly
Echo.DataFlow.dll

Provides members for resolving the next possible states of a program after the execution of an instruction.

public interface IStateTransitioner<TInstruction> where TInstruction : notnull

Type Parameters

TInstruction

The type of instruction that is being executed.

Remarks

This interface is meant for components within the Echo project that require information about the transitions that an individual instruction might apply to a given program state. These are typically control flow graph builders, such as the SymbolicFlowGraphBuilder<TInstruction> class.

Methods

GetInitialState(long)

Gets the initial state of the program at a provided entry point address.

SymbolicProgramState<TInstruction> GetInitialState(long entrypointAddress)

Parameters

entrypointAddress long

The entry point address.

Returns

SymbolicProgramState<TInstruction>

The object representing the initial state of the program.

GetTransitions(in SymbolicProgramState<TInstruction>, in TInstruction, IList<StateTransition<TInstruction>>)

Resolves all possible program state transitions that the provided instruction can apply.

void GetTransitions(in SymbolicProgramState<TInstruction> currentState, in TInstruction instruction, IList<StateTransition<TInstruction>> transitionsBuffer)

Parameters

currentState SymbolicProgramState<TInstruction>

The current state of the program.

instruction TInstruction

The instruction to evaluate.

transitionsBuffer IList<StateTransition<TInstruction>>

The output buffer to add the transitions that the instruction might apply.