public class JvmTaintExpandOperator extends JvmDefaultExpandOperator<SetAbstractState<JvmTaintSource>>
ExpandOperator inherits all the functionalities of a JvmDefaultExpandOperator and in addition taints the return values if the called function
is a source.| Constructor and Description |
|---|
JvmTaintExpandOperator(JvmCfa cfa,
java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources)
Create the operator specifying the taint sources.
|
JvmTaintExpandOperator(JvmCfa cfa,
java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources,
boolean expandHeap)
Create the operator specifying the taint sources.
|
| Modifier and Type | Method and Description |
|---|---|
protected java.util.List<SetAbstractState<JvmTaintSource>> |
calculateReturnValues(AbstractState reducedExitState,
Instruction returnInstruction,
Call call)
The calculation of return values supports tainting it in case the analyzed method is a taint source.
|
JvmTaintAbstractState |
createJvmAbstractState(JvmCfaNode programLocation,
JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame,
JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap,
MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
Returns an instance of JvmAbstractState.
|
JvmTaintAbstractState |
expand(AbstractState expandedInitialState,
AbstractState reducedExitState,
JvmCfaNode blockEntryNode,
Call call)
Reconstructs the state of the caller of a procedure using the information of the expanded initial state, the reduced exit state, the block entry node (that can be used to retrieve the CFA
subgraph of the function), and the call to the procedure.
|
java.util.Map<Signature,java.util.Set<JvmTaintSource>> |
getSignaturesToSources()
Returns the mapping from fqns to taint sources.
|
expandHeappublic JvmTaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources, boolean expandHeap)
cfa - the control flow automaton of the analyzed program.signaturesToSources - a mapping from method signatures to their JvmTaintSourceexpandHeap - whether expansion of the heap is performedpublic JvmTaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources)
cfa - the control flow automaton of the analyzed program.signaturesToSources - a mapping from method signatures to their JvmTaintSourcepublic JvmTaintAbstractState expand(AbstractState expandedInitialState, AbstractState reducedExitState, JvmCfaNode blockEntryNode, Call call)
ExpandOperatorexpand in interface ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>expand in class JvmDefaultExpandOperator<SetAbstractState<JvmTaintSource>>expandedInitialState - the entry state of the called procedure before any reductionreducedExitState - the state of the called procedure in its exit nodeblockEntryNode - the entry node of the called procedurecall - the information of the call to the procedureRebuildOperator to be solvedprotected java.util.List<SetAbstractState<JvmTaintSource>> calculateReturnValues(AbstractState reducedExitState, Instruction returnInstruction, Call call)
calculateReturnValues in class JvmDefaultExpandOperator<SetAbstractState<JvmTaintSource>>public JvmTaintAbstractState createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
JvmAbstractStateFactorypublic java.util.Map<Signature,java.util.Set<JvmTaintSource>> getSignaturesToSources()