Class TaintPcodeExecutorState

java.lang.Object
ghidra.pcode.exec.PairedPcodeExecutorState<byte[],TaintVec>
ghidra.pcode.emu.taint.state.TaintPcodeExecutorState
All Implemented Interfaces:
PcodeExecutorState<org.apache.commons.lang3.tuple.Pair<byte[],TaintVec>>, PcodeExecutorStatePiece<org.apache.commons.lang3.tuple.Pair<byte[],TaintVec>,org.apache.commons.lang3.tuple.Pair<byte[],TaintVec>>

public class TaintPcodeExecutorState extends PairedPcodeExecutorState<byte[],TaintVec>
A paired concrete-plus-taint state

This contains the emulator's machine state along with the taint markings. Technically, one of these will hold the machine's memory, while another (for each thread) will hold the machine's registers. It's composed of two pieces. The concrete piece holds the actual concrete bytes, while the taint piece holds the taint markings. A request to get a variable's value from this state will return a pair where the left element comes from the concrete piece and the right element comes from the taint piece.

  • Constructor Details

    • TaintPcodeExecutorState

      protected TaintPcodeExecutorState(BytesPcodeExecutorStatePiece concrete, TaintPcodeExecutorStatePiece taint)
      Create a state from the two given pieces
      Parameters:
      concrete - the concrete piece
      taint - the taint piece
    • TaintPcodeExecutorState

      public TaintPcodeExecutorState(Language language, BytesPcodeExecutorStatePiece concrete, PcodeStateCallbacks cb)
      Create a state from the given concrete piece and an internally constructed taint piece
      Parameters:
      language - the language for creating the taint piece
      concrete - the concrete piece
      cb - callbacks to receive emulation events