Package ghidra.taint.model
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.
-
ClassDescriptionA taint markAn immutable set of multiple taint marksA mutable, but fixed-size, buffer of taint setsCommon shifting behaviors