类 TaintExpandOperator
- java.lang.Object
-
- proguard.analysis.cpa.jvm.operators.DefaultExpandOperator<SetAbstractState<JvmTaintSource>>
-
- proguard.analysis.cpa.jvm.domain.taint.TaintExpandOperator
-
- 所有已实现的接口:
ExpandOperator<SetAbstractState<JvmTaintSource>>
public class TaintExpandOperator extends DefaultExpandOperator<SetAbstractState<JvmTaintSource>>
ThisExpandOperatorinherits all the functionalities of aDefaultExpandOperatorand in addition taints the return values if the called function is a source.
-
-
构造器概要
构造器 构造器 说明 TaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources)Create the operator specifying the taint sources.TaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources, boolean expandHeap)Create the operator specifying the taint sources.
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected java.util.List<SetAbstractState<JvmTaintSource>>calculateReturnValues(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedExitState, Instruction returnInstruction, Call call)The calculation of return values supports tainting it in case the analyzed method is a taint source.protected JvmAbstractState<SetAbstractState<JvmTaintSource>>createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)JvmAbstractState<SetAbstractState<JvmTaintSource>>expand(JvmAbstractState<SetAbstractState<JvmTaintSource>> expandedInitialState, JvmAbstractState<SetAbstractState<JvmTaintSource>> 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.-
从类继承的方法 proguard.analysis.cpa.jvm.operators.DefaultExpandOperator
expandHeap
-
-
-
-
构造器详细资料
-
TaintExpandOperator
public TaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources, boolean expandHeap)
Create the operator specifying the taint sources.- 参数:
cfa- the control flow automaton of the analyzed program.signaturesToSources- a mapping from method signatures to theirJvmTaintSourceexpandHeap- whether expansion of the heap is performed
-
TaintExpandOperator
public TaintExpandOperator(JvmCfa cfa, java.util.Map<Signature,java.util.Set<JvmTaintSource>> signaturesToSources)
Create the operator specifying the taint sources.- 参数:
cfa- the control flow automaton of the analyzed program.signaturesToSources- a mapping from method signatures to theirJvmTaintSource
-
-
方法详细资料
-
expand
public JvmAbstractState<SetAbstractState<JvmTaintSource>> expand(JvmAbstractState<SetAbstractState<JvmTaintSource>> expandedInitialState, JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedExitState, JvmCfaNode blockEntryNode, Call call)
从接口复制的说明:ExpandOperatorReconstructs 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.- 指定者:
expand在接口中ExpandOperator<SetAbstractState<JvmTaintSource>>- 覆盖:
expand在类中DefaultExpandOperator<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 procedure- 返回:
- The state of the caller after the procedure call, eventually with some collisions of
identifiers that need the
RebuildOperatorto be solved
-
calculateReturnValues
protected java.util.List<SetAbstractState<JvmTaintSource>> calculateReturnValues(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedExitState, Instruction returnInstruction, Call call)
The calculation of return values supports tainting it in case the analyzed method is a taint source.
-
createJvmAbstractState
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
-
getSignaturesToSources
public java.util.Map<Signature,java.util.Set<JvmTaintSource>> getSignaturesToSources()
Returns the mapping from fqns to taint sources.
-
-