Package it.unive.lisa.analysis.taint
Class Taint
- java.lang.Object
-
- it.unive.lisa.analysis.taint.BaseTaint<Taint>
-
- it.unive.lisa.analysis.taint.Taint
-
- All Implemented Interfaces:
it.unive.lisa.analysis.BaseLattice<Taint>
,it.unive.lisa.analysis.Lattice<Taint>
,it.unive.lisa.analysis.nonrelational.NonRelationalDomain<Taint,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Taint>>
,it.unive.lisa.analysis.nonrelational.NonRelationalElement<Taint,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Taint>>
,it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain<Taint>
,it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<Taint>
,it.unive.lisa.analysis.SemanticEvaluator
,it.unive.lisa.util.representation.StructuredObject
public class Taint extends BaseTaint<Taint>
ABaseTaint
implementation with only two level of taintedness: clean and tainted. As such, this class distinguishes values that are always clean from values that are tainted in at least one execution path.
-
-
Field Summary
-
Fields inherited from class it.unive.lisa.analysis.taint.BaseTaint
CLEAN_ANNOTATION, CLEAN_MATCHER, TAINTED_ANNOTATION, TAINTED_MATCHER
-
-
Constructor Summary
Constructors Constructor Description Taint()
Builds a new instance of taint.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Taint
bottom()
protected Taint
clean()
Yields the domain element that represents clean values.boolean
equals(java.lang.Object obj)
int
hashCode()
boolean
isAlwaysTainted()
Yieldstrue
if this instance represents information that is definitely tainted across all execution paths.boolean
isPossiblyTainted()
Yieldstrue
if this instance represents information that is definitely tainted in at least one execution path.boolean
lessOrEqualAux(Taint other)
Taint
lubAux(Taint other)
it.unive.lisa.util.representation.StructuredRepresentation
representation()
protected Taint
tainted()
Yields the domain element that represents tainted values.Taint
top()
java.lang.String
toString()
Taint
wideningAux(Taint other)
-
Methods inherited from class it.unive.lisa.analysis.taint.BaseTaint
assume, defaultApprox, evalBinaryExpression, evalIdentifier, evalNonNullConstant, evalNullConstant, evalPushAny, evalTernaryExpression, evalTypeCast, evalTypeConv, evalUnaryExpression, fixedVariable, isAlwaysClean, isPossiblyClean, satisfies
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.analysis.BaseLattice
glb, glbAux, lessOrEqual, lub, narrowing, narrowingAux, widening
-
Methods inherited from interface it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
assumeBinaryExpression, assumeTernaryExpression, assumeUnaryExpression, canProcess, eval, evalPushInv, evalSkip, evalValueExpression, satisfiesAbstractValue, satisfiesBinaryExpression, satisfiesNonNullConstant, satisfiesNullConstant, satisfiesTernaryExpression, satisfiesUnaryExpression
-
-
-
-
Method Detail
-
tainted
protected Taint tainted()
Description copied from class:BaseTaint
Yields the domain element that represents tainted values.
-
clean
protected Taint clean()
Description copied from class:BaseTaint
Yields the domain element that represents clean values.
-
isPossiblyTainted
public boolean isPossiblyTainted()
Description copied from class:BaseTaint
Yieldstrue
if this instance represents information that is definitely tainted in at least one execution path.- Specified by:
isPossiblyTainted
in classBaseTaint<Taint>
- Returns:
true
if that condition holds
-
isAlwaysTainted
public boolean isAlwaysTainted()
Description copied from class:BaseTaint
Yieldstrue
if this instance represents information that is definitely tainted across all execution paths.- Specified by:
isAlwaysTainted
in classBaseTaint<Taint>
- Returns:
true
if that condition holds
-
representation
public it.unive.lisa.util.representation.StructuredRepresentation representation()
-
top
public Taint top()
-
bottom
public Taint bottom()
-
lubAux
public Taint lubAux(Taint other) throws it.unive.lisa.analysis.SemanticException
- Throws:
it.unive.lisa.analysis.SemanticException
-
wideningAux
public Taint wideningAux(Taint other) throws it.unive.lisa.analysis.SemanticException
- Throws:
it.unive.lisa.analysis.SemanticException
-
lessOrEqualAux
public boolean lessOrEqualAux(Taint other) throws it.unive.lisa.analysis.SemanticException
- Throws:
it.unive.lisa.analysis.SemanticException
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfaceit.unive.lisa.analysis.BaseLattice<Taint>
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equals
in interfaceit.unive.lisa.analysis.BaseLattice<Taint>
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Specified by:
toString
in interfaceit.unive.lisa.analysis.BaseLattice<Taint>
- Overrides:
toString
in classjava.lang.Object
-
-