Class TaintReduceOperator
java.lang.Object
proguard.analysis.cpa.jvm.operators.DefaultReduceOperator<SetAbstractState<JvmTaintSource>>
proguard.analysis.cpa.jvm.domain.taint.TaintReduceOperator
- All Implemented Interfaces:
ReduceOperator<SetAbstractState<JvmTaintSource>>
This
ReduceOperator inherits all the functionalities of a
DefaultReduceOperator while adding taint-analysis specific functionalities.-
Constructor Summary
ConstructorsConstructorDescriptionTaintReduceOperator(boolean reduceHeap) Create the taint reduce operator for the JVM.TaintReduceOperator(boolean reduceHeap, Map<Signature, Set<JvmTaintSource>> taintSources) Create the taint reduce operator for the JVM. -
Method Summary
Modifier and TypeMethodDescriptionprotected JvmAbstractState<SetAbstractState<JvmTaintSource>>createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<String, SetAbstractState<JvmTaintSource>> staticFields) onMethodEntry(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedState, boolean isCallStatic) Performs additional operations on the reduced state (i.e.Methods inherited from class proguard.analysis.cpa.jvm.operators.DefaultReduceOperator
reduceHeap, reduceImpl, reduceStaticFieldsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface proguard.analysis.cpa.bam.ReduceOperator
reduce
-
Constructor Details
-
TaintReduceOperator
public TaintReduceOperator(boolean reduceHeap) Create the taint reduce operator for the JVM.- Parameters:
reduceHeap- whether reduction of the heap is performed
-
TaintReduceOperator
Create the taint reduce operator for the JVM.- Parameters:
reduceHeap- whether reduction of the heap is performedtaintSources- collection of taint sources
-
-
Method Details
-
createJvmAbstractState
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<String, SetAbstractState<JvmTaintSource>> staticFields) - Overrides:
createJvmAbstractStatein classDefaultReduceOperator<SetAbstractState<JvmTaintSource>>
-
onMethodEntry
public JvmAbstractState<SetAbstractState<JvmTaintSource>> onMethodEntry(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedState, boolean isCallStatic) Description copied from interface:ReduceOperatorPerforms additional operations on the reduced state (i.e. on the method entry state). Does nothing by default. NB: since this is still part of the reduction operation the result of this method is the state used by the analysis and part of the cache key for the called method.- Parameters:
reducedState- reduced state (i.e., the entry state of the called method)isCallStatic- is the called method static- Returns:
- the state after performing additional operations or untouched state by default
-