public class JvmTaintTransferRelation extends JvmTransferRelation<SetAbstractState<JvmTaintSource>>
JvmTaintTransferRelation
is parametrized by a set of TaintSource
methods.Modifier and Type | Class and Description |
---|---|
protected class |
JvmTaintTransferRelation.InstructionAbstractInterpreter |
Constructor and Description |
---|
JvmTaintTransferRelation(java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
Create a taint transfer relation.
|
JvmTaintTransferRelation(java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources,
java.util.Map<MethodSignature,JvmTaintTransformer> taintTransformers) |
Modifier and Type | Method and Description |
---|---|
java.util.Collection<? extends AbstractState> |
generateEdgeAbstractSuccessors(AbstractState abstractState,
JvmCfaEdge edge,
Precision precision)
Computes the successor states for the CFA
edge . |
SetAbstractState<JvmTaintSource> |
getAbstractDefault()
Returns a default abstract state.
|
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> |
getAbstractSuccessorForInstruction(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState,
Instruction instruction,
Clazz clazz,
Precision precision)
Returns the result of applying
instruction to the abstractState . |
void |
invokeMethod(JvmAbstractState<SetAbstractState<JvmTaintSource>> state,
Call call,
java.util.List<SetAbstractState<JvmTaintSource>> operands)
The default implementation computes join over its arguments.
|
calculateArithmeticInstruction, computeIncrement, generateEdgeAbstractSuccessor, getAbstractByteConstant, getAbstractDoubleConstant, getAbstractFloatConstant, getAbstractIntegerConstant, getAbstractLongConstant, getAbstractNull, getAbstractReferenceValue, getAbstractReferenceValue, getAbstractReferenceValue, getAbstractShortConstant, handleCheckCast, isInstanceOf, processCall
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEdges
generateAbstractSuccessors, wrapAbstractSuccessorInCollection
public JvmTaintTransferRelation(java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
taintSources
- a mapping from fully qualified names to taint sourcespublic JvmTaintTransferRelation(java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources, java.util.Map<MethodSignature,JvmTaintTransformer> taintTransformers)
public void invokeMethod(JvmAbstractState<SetAbstractState<JvmTaintSource>> state, Call call, java.util.List<SetAbstractState<JvmTaintSource>> operands)
JvmTransferRelation
invokeMethod
in class JvmTransferRelation<SetAbstractState<JvmTaintSource>>
public SetAbstractState<JvmTaintSource> getAbstractDefault()
JvmTransferRelation
getAbstractDefault
in class JvmTransferRelation<SetAbstractState<JvmTaintSource>>
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> getAbstractSuccessorForInstruction(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState, Instruction instruction, Clazz clazz, Precision precision)
JvmTransferRelation
instruction
to the abstractState
.getAbstractSuccessorForInstruction
in class JvmTransferRelation<SetAbstractState<JvmTaintSource>>
public java.util.Collection<? extends AbstractState> generateEdgeAbstractSuccessors(AbstractState abstractState, JvmCfaEdge edge, Precision precision)
ProgramLocationDependentTransferRelation
edge
.