Class JvmTaintTransferRelation
java.lang.Object
proguard.analysis.cpa.jvm.transfer.JvmTransferRelation<SetAbstractState<JvmTaintSource>>
proguard.analysis.cpa.jvm.domain.taint.JvmTaintTransferRelation
- All Implemented Interfaces:
ProgramLocationDependentForwardTransferRelation<SetAbstractState<JvmTaintSource>>,ProgramLocationDependentTransferRelation<SetAbstractState<JvmTaintSource>>,TransferRelation<JvmAbstractState<SetAbstractState<JvmTaintSource>>>
The
JvmTaintTransferRelation is parametrized by a set of TaintSource methods.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class -
Constructor Summary
ConstructorsConstructorDescriptionJvmTaintTransferRelation(Map<Signature, Set<JvmTaintSource>> taintSources) Create a taint transfer relation.JvmTaintTransferRelation(Map<Signature, Set<JvmTaintSource>> taintSources, Map<MethodSignature, JvmTaintTransformer> taintTransformers, Map<Call, Set<JvmMemoryLocation>> extraTaintPropagationLocations) -
Method Summary
Modifier and TypeMethodDescriptionReturns a default abstract state.protected JvmAbstractState<SetAbstractState<JvmTaintSource>>getAbstractSuccessorForInstruction(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState, Instruction instruction, Clazz clazz, Precision precision) Returns the result of applyinginstructionto theabstractState.voidinvokeMethod(JvmAbstractState<SetAbstractState<JvmTaintSource>> state, Call call, List<SetAbstractState<JvmTaintSource>> operands) The default implementation computes join over its arguments.Methods inherited from class proguard.analysis.cpa.jvm.transfer.JvmTransferRelation
calculateArithmeticInstruction, computeIncrement, generateEdgeAbstractSuccessor, generateEdgeAbstractSuccessors, getAbstractByteConstant, getAbstractDoubleConstant, getAbstractFloatConstant, getAbstractIntegerConstant, getAbstractLongConstant, getAbstractNull, getAbstractReferenceValue, getAbstractShortConstant, handleCheckCast, isInstanceOf, processCallMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentForwardTransferRelation
getEdgesMethods inherited from interface proguard.analysis.cpa.interfaces.ProgramLocationDependentTransferRelation
generateAbstractSuccessors, wrapAbstractSuccessorInCollection
-
Constructor Details
-
JvmTaintTransferRelation
Create a taint transfer relation.- Parameters:
taintSources- a mapping from fully qualified names to taint sources
-
JvmTaintTransferRelation
public JvmTaintTransferRelation(Map<Signature, Set<JvmTaintSource>> taintSources, Map<MethodSignature, JvmTaintTransformer> taintTransformers, Map<Call, Set<JvmMemoryLocation>> extraTaintPropagationLocations)
-
-
Method Details
-
invokeMethod
public void invokeMethod(JvmAbstractState<SetAbstractState<JvmTaintSource>> state, Call call, List<SetAbstractState<JvmTaintSource>> operands) Description copied from class:JvmTransferRelationThe default implementation computes join over its arguments.- Overrides:
invokeMethodin classJvmTransferRelation<SetAbstractState<JvmTaintSource>>
-
getAbstractDefault
Description copied from class:JvmTransferRelationReturns a default abstract state. In case of lattice abstract domains, it should be the bottom element.- Specified by:
getAbstractDefaultin classJvmTransferRelation<SetAbstractState<JvmTaintSource>>
-
getAbstractSuccessorForInstruction
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> getAbstractSuccessorForInstruction(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState, Instruction instruction, Clazz clazz, Precision precision) Description copied from class:JvmTransferRelationReturns the result of applyinginstructionto theabstractState.- Overrides:
getAbstractSuccessorForInstructionin classJvmTransferRelation<SetAbstractState<JvmTaintSource>>
-