Package ghidra.pcode.emu.taint.state
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>>
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.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece
PcodeExecutorStatePiece.Reason -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreate a state from the two given piecesTaintPcodeExecutorState(Language language, BytesPcodeExecutorStatePiece concrete, PcodeStateCallbacks cb) Create a state from the given concrete piece and an internally constructed taint piece -
Method Summary
Methods inherited from class ghidra.pcode.exec.PairedPcodeExecutorState
clear, fork, getArithmetic, getConcreteBuffer, getLanguage, getLeft, getRegisterValues, getRight, getVar, getVar, getVarInternal, getVarInternal, setVar, setVar, setVarInternal, setVarInternal, streamPiecesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.pcode.exec.PcodeExecutorState
getAddressArithmetic, pairedMethods inherited from interface ghidra.pcode.exec.PcodeExecutorStatePiece
checkRange, getNextEntryInternal, getNextEntryInternal, getVar, getVar, getVar, inspectBigInteger, inspectByte, inspectConcrete, inspectInt, inspectLong, inspectRegisterValue, inspectShort, quantizeOffset, setBigInteger, setByte, setConcrete, setInt, setLong, setRegisterValue, setRegisterValue, setShort, setVar, setVar, setVar
-
Constructor Details
-
TaintPcodeExecutorState
protected TaintPcodeExecutorState(BytesPcodeExecutorStatePiece concrete, TaintPcodeExecutorStatePiece taint) Create a state from the two given pieces- Parameters:
concrete- the concrete piecetaint- 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 piececoncrete- the concrete piececb- callbacks to receive emulation events
-