Package ghidra.taint.model


package ghidra.taint.model
The Taint domain package

This package implements the domain of taint analysis. TaintVec models an array of bytes, each having a TaintSet. A TaintSet is in turn made of several TaintMarks. Each mark is a symbol with optional tags. We use the tags as a means of handling indirection, so that we don't have to decide up front whether tainted offsets taint the values read and written from memory. We allow them to be tainted, but add a tag to the mark, so they can be examined and/or filtered by the user.

To facilitate storage and presentation of taint, we will need to implement some (de)serialization. Rather than use Java's notion, we'll just implement toString and a static parse method for sets and marks.

We recommend you read the documentation and source from the bottom up: TaintMark, TaintSet, TaintVec.

  • Class
    Description
    A taint mark
    An immutable set of multiple taint marks
    A mutable, but fixed-size, buffer of taint sets
    Common shifting behaviors