Class JvmTaintCpa

All Implemented Interfaces:
ConfigurableProgramAnalysis<JvmAbstractState<SetAbstractState<TaintSource>>>

public class JvmTaintCpa extends SimpleCpa<JvmAbstractState<SetAbstractState<TaintSource>>>
The JvmTaintCpa computes abstract states containing TaintSources which can reach the given code location.
  • Constructor Details

    • JvmTaintCpa

      public JvmTaintCpa(Set<? extends TaintSource> sources)
      Create a taint CPA.
      Parameters:
      sources - a set of taint sources
    • JvmTaintCpa

      public JvmTaintCpa(Map<Signature,Set<TaintSource>> signaturesToSources, Map<MethodSignature,JvmTaintTransformer> taintTransformers, Map<Call,Set<JvmMemoryLocation>> extraTaintPropagationLocations, AbortOperator abortOperator)
      Create a taint CPA.
      Parameters:
      signaturesToSources - a mapping from method signature to taint sources
      taintTransformers - a mapping from method signature to a transformer object applied to the taint state when that method is invoked
      extraTaintPropagationLocations - a mapping from a specific method call to any jvm state location that is tainted as a result of the call
      abortOperator - an operator used to stop the analysis prematurely.
  • Method Details

    • createSourcesMap

      public static Map<Signature,Set<TaintSource>> createSourcesMap(Set<? extends TaintSource> sources)
      Constructs a map from the source signatures to the sources with that signature, starting from a set of sources.