Class JvmTaintBamCpaRun<OuterAbstractStateT extends AbstractState>
- java.lang.Object
-
- proguard.analysis.cpa.defaults.CpaRun<BamCpa<CfaNodeT,CfaEdgeT,SignatureT>,AbstractStateT>
-
- proguard.analysis.cpa.defaults.BamCpaRun<CpaT,OuterAbstractStateT,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
- proguard.analysis.cpa.jvm.util.JvmBamCpaRun<SimpleCpa,SetAbstractState<JvmTaintSource>,OuterAbstractStateT>
-
- proguard.analysis.cpa.jvm.domain.taint.JvmTaintBamCpaRun<OuterAbstractStateT>
-
public class JvmTaintBamCpaRun<OuterAbstractStateT extends AbstractState> extends JvmBamCpaRun<SimpleCpa,SetAbstractState<JvmTaintSource>,OuterAbstractStateT>
This run wraps the execution of BAMJvmTaintCpa
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JvmTaintBamCpaRun.Builder
A builder forJvmTaintBamCpaRun
.
-
Field Summary
-
Fields inherited from class proguard.analysis.cpa.jvm.util.JvmBamCpaRun
cfa, heapModel
-
Fields inherited from class proguard.analysis.cpa.defaults.BamCpaRun
reduceHeap
-
Fields inherited from class proguard.analysis.cpa.defaults.CpaRun
abortOperator, cpa
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
JvmTaintBamCpaRun(JvmCfa cfa, java.util.Set<? extends JvmTaintSource> taintSources, MethodSignature mainMethodSignature, int maxCallStackDepth, HeapModel heapModel, AbortOperator abortOperator, boolean reduceHeap, MapAbstractStateFactory<java.lang.String,SetAbstractState<JvmTaintSource>> staticFieldMapAbstractStateFactory, MapAbstractStateFactory<java.lang.String,SetAbstractState<Reference>> principalHeapNodeMapAbstractStateFactory, MapAbstractStateFactory<java.lang.String,SetAbstractState<JvmTaintSource>> followerHeapNodeMapAbstractStateFactory, java.util.Map<MethodSignature,JvmTaintTransformer> taintTransformers, java.util.Map<Call,java.util.Set<JvmMemoryLocation>> extraTaintPropagationLocations)
Create a CPA run.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
createExpandOperator()
Returns the expand operator.SimpleCpa
createIntraproceduralCPA()
Returns the intraprocedural CPA.ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
createReduceOperator()
Returns the reduce operator.java.util.Collection<OuterAbstractStateT>
getInitialStates()
Returns a collection of initialAbstractState
s.MethodSignature
getMainSignature()
Returns the signature of the main procedure.-
Methods inherited from class proguard.analysis.cpa.jvm.util.JvmBamCpaRun
createReachedSet, getCfa
-
Methods inherited from class proguard.analysis.cpa.defaults.BamCpaRun
createCache, createRebuildOperator, getAnalyzedMethods, getCpa, getMaxCallStackDepth
-
Methods inherited from class proguard.analysis.cpa.defaults.CpaRun
createWaitlist, execute, getAbortOperator
-
-
-
-
Constructor Detail
-
JvmTaintBamCpaRun
protected JvmTaintBamCpaRun(JvmCfa cfa, java.util.Set<? extends JvmTaintSource> taintSources, MethodSignature mainMethodSignature, int maxCallStackDepth, HeapModel heapModel, AbortOperator abortOperator, boolean reduceHeap, MapAbstractStateFactory<java.lang.String,SetAbstractState<JvmTaintSource>> staticFieldMapAbstractStateFactory, MapAbstractStateFactory<java.lang.String,SetAbstractState<Reference>> principalHeapNodeMapAbstractStateFactory, MapAbstractStateFactory<java.lang.String,SetAbstractState<JvmTaintSource>> followerHeapNodeMapAbstractStateFactory, java.util.Map<MethodSignature,JvmTaintTransformer> taintTransformers, java.util.Map<Call,java.util.Set<JvmMemoryLocation>> extraTaintPropagationLocations)
Create a CPA run. If reduceHeap is set to false no reduction/expansion is applied to the heap states at call/return sites (this parameter is irrelevant for FORGETFUL heap model).- Parameters:
cfa
- a CFAtaintSources
- a set of taint sourcesmainMethodSignature
- the signature of the main methodmaxCallStackDepth
- the maximum depth of the call stack analyzed interprocedurally 0 means intraprocedural analysis < 0 means no maximum depthheapModel
- a heap model to be usedabortOperator
- an abort operatorreduceHeap
- whether reduction/expansion of the heap state is performed at call/return sitesprincipalHeapMapAbstractStateFactory
- a map abstract state factory used for constructing the mapping from references to objects in the principal heap modelprincipalHeapNodeMapAbstractStateFactory
- a map abstract state factory used for constructing the mapping from fields to values in the principal heap modelfollowerHeapMapAbstractStateFactory
- a map abstract state factory used for constructing the mapping from references to objects in the follower heap modelfollowerHeapNodeMapAbstractStateFactory
- a map abstract state factory used for constructing the mapping from fields to values in the follower heap modeltaintTransformers
- a mapping from method signature to a transformer object applied to the taint state when that method is invoked
-
-
Method Detail
-
createIntraproceduralCPA
public SimpleCpa createIntraproceduralCPA()
Description copied from class:BamCpaRun
Returns the intraprocedural CPA.- Specified by:
createIntraproceduralCPA
in classBamCpaRun<SimpleCpa,OuterAbstractStateT extends AbstractState,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
createReduceOperator
public ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature> createReduceOperator()
Description copied from class:BamCpaRun
Returns the reduce operator.- Overrides:
createReduceOperator
in classJvmBamCpaRun<SimpleCpa,SetAbstractState<JvmTaintSource>,OuterAbstractStateT extends AbstractState>
-
createExpandOperator
public ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature> createExpandOperator()
Description copied from class:BamCpaRun
Returns the expand operator.- Specified by:
createExpandOperator
in classBamCpaRun<SimpleCpa,OuterAbstractStateT extends AbstractState,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
getMainSignature
public MethodSignature getMainSignature()
Description copied from class:BamCpaRun
Returns the signature of the main procedure.- Specified by:
getMainSignature
in classBamCpaRun<SimpleCpa,OuterAbstractStateT extends AbstractState,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
getInitialStates
public java.util.Collection<OuterAbstractStateT> getInitialStates()
Description copied from class:CpaRun
Returns a collection of initialAbstractState
s.- Specified by:
getInitialStates
in classCpaRun<BamCpa<JvmCfaNode,JvmCfaEdge,MethodSignature>,OuterAbstractStateT extends AbstractState>
-
-