| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
Aliasing.baseMatches(soot.Value baseValue,
Abstraction source)
Checks whether the given base value matches the base of the given taint
abstraction
|
static boolean |
Aliasing.baseMatchesStrict(soot.Value baseValue,
Abstraction source)
Checks whether the given base value matches the base of the given taint
abstraction and ends there.
|
boolean |
Aliasing.canHaveAliases(soot.jimple.Stmt stmt,
soot.Value val,
Abstraction source)
Checks whether the given newly created taint can have an alias at the given
statement.
|
void |
Aliasing.computeAliases(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs)
Computes the taints for the aliases of a given tainted variable
|
void |
PtsBasedAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
NullAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
ImplicitFlowAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
FlowSensitiveAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
AbstractInteractiveAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
IAliasingStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs)
Computes the taints for the aliases of a given tainted variable
|
void |
PtsBasedAliasStrategy.computeAliasTaintsInternal(Abstraction d1,
soot.SootMethod method,
Abstraction newAbs,
List<soot.SootField> appendFields,
List<soot.Type> appendTypes,
boolean taintSubFields,
soot.jimple.Stmt actStmt) |
void |
PtsBasedAliasStrategy.injectCallingContext(Abstraction abs,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1) |
void |
NullAliasStrategy.injectCallingContext(Abstraction abs,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1) |
void |
LazyAliasingStrategy.injectCallingContext(Abstraction abs,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1) |
void |
ImplicitFlowAliasStrategy.injectCallingContext(Abstraction abs,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1) |
void |
FlowSensitiveAliasStrategy.injectCallingContext(Abstraction d3,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1) |
void |
IAliasingStrategy.injectCallingContext(Abstraction abs,
IInfoflowSolver fSolver,
soot.SootMethod callee,
soot.Unit callSite,
Abstraction source,
Abstraction d1)
Notifies the aliasing strategy that a method has been called in the
taint analysis.
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
Aliasing.computeAliases(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs)
Computes the taints for the aliases of a given tainted variable
|
void |
PtsBasedAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
NullAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
ImplicitFlowAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
FlowSensitiveAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
AbstractInteractiveAliasStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs) |
void |
IAliasingStrategy.computeAliasTaints(Abstraction d1,
soot.jimple.Stmt src,
soot.Value targetValue,
Set<Abstraction> taintSet,
soot.SootMethod method,
Abstraction newAbs)
Computes the taints for the aliases of a given tainted variable
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected Abstraction |
Abstraction.predecessor |
| 限定符和类型 | 字段和说明 |
|---|---|
protected Set<Abstraction> |
Abstraction.neighbors |
protected ExtensibleList<Abstraction> |
SourceContextAndPath.path |
| 限定符和类型 | 方法和说明 |
|---|---|
Abstraction |
Abstraction.clone() |
Abstraction |
Abstraction.deriveConditionalAbstractionCall(soot.Unit conditionalCallSite) |
Abstraction |
Abstraction.deriveConditionalAbstractionEnter(IInfoflowCFG.UnitContainer postdom,
soot.jimple.Stmt conditionalUnit) |
Abstraction |
Abstraction.deriveInactiveAbstraction(soot.jimple.Stmt activationUnit) |
Abstraction |
Abstraction.deriveNewAbstraction(AccessPath p,
soot.jimple.Stmt currentStmt) |
Abstraction |
Abstraction.deriveNewAbstraction(AccessPath p,
soot.jimple.Stmt currentStmt,
boolean isImplicit) |
protected Abstraction |
Abstraction.deriveNewAbstractionMutable(AccessPath p,
soot.jimple.Stmt currentStmt) |
Abstraction |
Abstraction.deriveNewAbstractionOnCatch(AccessPath ap)
Derives a new abstraction that models the current local being caught as an
exception
|
Abstraction |
Abstraction.deriveNewAbstractionOnThrow(soot.jimple.Stmt throwStmt)
Derives a new abstraction that models the current local being thrown as an
exception
|
Abstraction |
Abstraction.dropTopPostdominator() |
Abstraction |
AbstractionAtSink.getAbstraction()
Gets the abstraction with which the sink has been reached
|
Abstraction |
Abstraction.getActiveCopy() |
Abstraction |
Abstraction.getPredecessor() |
static Abstraction |
Abstraction.getZeroAbstraction(boolean flowSensitiveAliasing) |
Abstraction |
FlowDroidMemoryManager.handleGeneratedMemoryObject(Abstraction input,
Abstraction output) |
Abstraction |
FlowDroidMemoryManager.handleMemoryObject(Abstraction obj) |
Abstraction |
Abstraction.injectSourceContext(SourceContext sourceContext) |
| 限定符和类型 | 方法和说明 |
|---|---|
List<Abstraction> |
SourceContextAndPath.getAbstractionPath() |
Set<Abstraction> |
Abstraction.getNeighbors() |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
Abstraction.addNeighbor(Abstraction originalAbstraction) |
int |
Abstraction.NeighborHashingStrategy.computeHashCode(Abstraction abs) |
boolean |
Abstraction.entails(Abstraction other)
Checks whether this abstraction entails the given abstraction, i.e. this
taint also taints everything that is tainted by the given taint.
|
boolean |
Abstraction.NeighborHashingStrategy.equals(Abstraction abs1,
Abstraction abs2) |
protected void |
FlowDroidMemoryManager.erasePathData(Abstraction output)
Erases the statements recorded in the given abstraction if the solver has
been configured to do so
|
SourceContextAndPath |
SourceContextAndPath.extendPath(Abstraction abs)
Extends the taint propagation path with the given abstraction
|
SourceContextAndPath |
SourceContextAndPath.extendPath(Abstraction abs,
InfoflowConfiguration.PathConfiguration pathConfig)
Extends the taint propagation path with the given abstraction
|
Abstraction |
FlowDroidMemoryManager.handleGeneratedMemoryObject(Abstraction input,
Abstraction output) |
Abstraction |
FlowDroidMemoryManager.handleMemoryObject(Abstraction obj) |
boolean |
FlowDroidMemoryManager.isEssentialJoinPoint(Abstraction abs,
soot.Unit relatedCallSite) |
void |
Abstraction.setPredecessor(Abstraction predecessor) |
| 构造器和说明 |
|---|
Abstraction(AccessPath p,
Abstraction original)
Creates an abstraction as a copy of an existing abstraction, only exchanging
the access path. -> only used by AbstractionWithPath
|
AbstractionAtSink(ISourceSinkDefinition sinkDefinition,
Abstraction abstraction,
soot.jimple.Stmt sinkStmt)
Creates a new instance of the
AbstractionAtSink class |
| 限定符和类型 | 字段和说明 |
|---|---|
protected ConcurrentIdentityHashMultiMap<Abstraction,SourceContextAndPath> |
ContextSensitivePathBuilder.pathCache |
| 限定符和类型 | 方法和说明 |
|---|---|
protected boolean |
ContextSensitivePathBuilder.checkForSource(Abstraction abs,
SourceContextAndPath scap)
Checks whether the given abstraction is a source.
|
| 构造器和说明 |
|---|
SourceFindingTask(Abstraction abstraction) |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
GlobalTaintManager.addToGlobalTaintState(Abstraction abs)
Adds an abstraction to the global taint state.
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
SequentialTaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type) |
Set<Abstraction> |
TaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type)
Handler function that is invoked when a new taint is generated in the data
flow engine
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
SequentialTaintPropagationHandler.notifyFlowIn(soot.Unit stmt,
Abstraction taint,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type) |
void |
TaintPropagationHandler.notifyFlowIn(soot.Unit stmt,
Abstraction taint,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type)
Handler function that is invoked when a taint is proagated in the data flow
engine
|
Set<Abstraction> |
SequentialTaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type) |
Set<Abstraction> |
TaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type)
Handler function that is invoked when a new taint is generated in the data
flow engine
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
SequentialTaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type) |
Set<Abstraction> |
TaintPropagationHandler.notifyFlowOut(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
InfoflowManager manager,
TaintPropagationHandler.FlowFunctionType type)
Handler function that is invoked when a new taint is generated in the data
flow engine
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
DefaultNativeCallHandler.getTaintedValues(soot.jimple.Stmt call,
Abstraction source,
soot.Value[] params) |
Set<Abstraction> |
INativeCallHandler.getTaintedValues(soot.jimple.Stmt call,
Abstraction source,
soot.Value[] params)
Returns the set of tainted values for a given call to native code, a
given tainted value and the list of passed arguments
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
DefaultNativeCallHandler.getTaintedValues(soot.jimple.Stmt call,
Abstraction source,
soot.Value[] params) |
Set<Abstraction> |
INativeCallHandler.getTaintedValues(soot.jimple.Stmt call,
Abstraction source,
soot.Value[] params)
Returns the set of tainted values for a given call to native code, a
given tainted value and the list of passed arguments
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected Abstraction |
AbstractInfoflowProblem.zeroValue |
| 限定符和类型 | 字段和说明 |
|---|---|
protected Map<soot.Unit,Set<Abstraction>> |
AbstractInfoflowProblem.initialSeeds |
protected MyConcurrentHashMap<AbstractionAtSink,Abstraction> |
TaintPropagationResults.results |
| 限定符和类型 | 方法和说明 |
|---|---|
Abstraction |
AbstractInfoflowProblem.createZeroValue() |
protected Abstraction |
AbstractInfoflowProblem.getZeroValue() |
| 限定符和类型 | 方法和说明 |
|---|---|
heros.FlowFunctions<soot.Unit,Abstraction,soot.SootMethod> |
BackwardsInfoflowProblem.createFlowFunctionsFactory() |
heros.FlowFunctions<soot.Unit,Abstraction,soot.SootMethod> |
InfoflowProblem.createFlowFunctionsFactory() |
Map<soot.Unit,Set<Abstraction>> |
AbstractInfoflowProblem.getInitialSeeds()
Gets the initial seeds with which this information flow problem has been
configured
|
Map<soot.Unit,Set<Abstraction>> |
AbstractInfoflowProblem.initialSeeds() |
protected Set<Abstraction> |
AbstractInfoflowProblem.notifyOutFlowHandlers(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
TaintPropagationHandler.FlowFunctionType functionType)
Notifies the outbound flow handlers, if any, about the computed result
abstractions for the current flow function
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
AbstractInfoflowProblem.notifyOutFlowHandlers(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
TaintPropagationHandler.FlowFunctionType functionType)
Notifies the outbound flow handlers, if any, about the computed result
abstractions for the current flow function
|
protected boolean |
AbstractInfoflowProblem.registerActivationCallSite(soot.Unit callSite,
soot.SootMethod callee,
Abstraction activationAbs) |
void |
AbstractInfoflowProblem.setZeroValue(Abstraction zeroValue) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
AbstractInfoflowProblem.addInitialSeeds(soot.Unit unit,
Set<Abstraction> seeds)
Adds the given initial seeds to the information flow problem
|
protected Set<Abstraction> |
AbstractInfoflowProblem.notifyOutFlowHandlers(soot.Unit stmt,
Abstraction d1,
Abstraction incoming,
Set<Abstraction> outgoing,
TaintPropagationHandler.FlowFunctionType functionType)
Notifies the outbound flow handlers, if any, about the computed result
abstractions for the current flow function
|
| 构造器和说明 |
|---|
InfoflowProblem(InfoflowManager manager,
Abstraction zeroValue,
IPropagationRuleManagerFactory ruleManagerFactory) |
| 限定符和类型 | 字段和说明 |
|---|---|
protected Abstraction |
AbstractTaintPropagationRule.zeroValue |
protected Abstraction |
PropagationRuleManager.zeroValue |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Abstraction |
AbstractTaintPropagationRule.getZeroValue() |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
PropagationRuleManager.applyCallFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll)
Propagates a flow across a call site
|
Set<Abstraction> |
PropagationRuleManager.applyCallToReturnFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt)
Applies all rules to the call-to-return flow function
|
Set<Abstraction> |
PropagationRuleManager.applyCallToReturnFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll,
boolean noAddSource)
Applies all rules to the call-to-return flow function
|
Set<Abstraction> |
PropagationRuleManager.applyNormalFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt)
Applies all rules to the normal flow function
|
Set<Abstraction> |
PropagationRuleManager.applyNormalFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Applies all rules to the normal flow function
|
Set<Abstraction> |
PropagationRuleManager.applyReturnFlowFunction(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Applies all rules to the return flow function
|
Collection<Abstraction> |
WrapperPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll)
Propagates a flow across a call site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Propagates a flow along a the call-to-return edge at a call site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Propagates a flow along a normal statement this is not a call or return
site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt returnStmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Propagates a flow along a the return edge
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
PropagationRuleManager.applyCallFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll)
Propagates a flow across a call site
|
Set<Abstraction> |
PropagationRuleManager.applyCallToReturnFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt)
Applies all rules to the call-to-return flow function
|
Set<Abstraction> |
PropagationRuleManager.applyCallToReturnFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll,
boolean noAddSource)
Applies all rules to the call-to-return flow function
|
Set<Abstraction> |
PropagationRuleManager.applyNormalFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt)
Applies all rules to the normal flow function
|
Set<Abstraction> |
PropagationRuleManager.applyNormalFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Applies all rules to the normal flow function
|
Set<Abstraction> |
PropagationRuleManager.applyReturnFlowFunction(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Applies all rules to the return flow function
|
protected void |
WrapperPropagationRule.checkAndPropagateAlias(Abstraction d1,
soot.jimple.Stmt iStmt,
Set<Abstraction> resWithAliases,
Abstraction abs)
Starts alias tracking for the results of a taint wrapper if necessary
|
PropagationRuleManager |
IPropagationRuleManagerFactory.createRuleManager(InfoflowManager manager,
Abstraction zeroValue,
TaintPropagationResults results)
Creates a propagation rule manager
|
PropagationRuleManager |
DefaultPropagationRuleManagerFactory.createRuleManager(InfoflowManager manager,
Abstraction zeroValue,
TaintPropagationResults results) |
protected boolean |
SinkPropagationRule.isTaintVisibleInCallee(soot.jimple.Stmt stmt,
Abstraction source)
Checks whether the given taint is visible inside the method called at the
given call site
|
Collection<Abstraction> |
WrapperPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll)
Propagates a flow across a call site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateCallFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Propagates a flow along a the call-to-return edge at a call site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateCallToReturnFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll)
Propagates a flow along a normal statement this is not a call or return
site
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateNormalFlow(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt,
ByReferenceBoolean killSource,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
WrapperPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt returnStmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Propagates a flow along a the return edge
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
PropagationRuleManager.applyReturnFlowFunction(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Applies all rules to the return flow function
|
protected void |
WrapperPropagationRule.checkAndPropagateAlias(Abstraction d1,
soot.jimple.Stmt iStmt,
Set<Abstraction> resWithAliases,
Abstraction abs)
Starts alias tracking for the results of a taint wrapper if necessary
|
Collection<Abstraction> |
WrapperPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
TypingPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ExceptionPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ImplicitPropagtionRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt returnStmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SourcePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StaticPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SinkPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
StrongUpdatePropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ArrayPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
ITaintPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll)
Propagates a flow along a the return edge
|
Collection<Abstraction> |
StopAfterFirstKFlowsPropagationRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
Collection<Abstraction> |
SkipSystemClassRule.propagateReturnFlow(Collection<Abstraction> callerD1s,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt retSite,
soot.jimple.Stmt callSite,
ByReferenceBoolean killAll) |
| 限定符和类型 | 方法和说明 |
|---|---|
heros.solver.Pair<ResultSourceInfo,ResultSinkInfo> |
InfoflowResults.addResult(ISourceSinkDefinition sinkDefinition,
AccessPath sink,
soot.jimple.Stmt sinkStmt,
ISourceSinkDefinition sourceDefinition,
AccessPath source,
soot.jimple.Stmt sourceStmt,
Object userData,
List<Abstraction> propagationPath) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
IInfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3)
Gets the end summary of the given method for the given incoming abstraction
|
IMemoryManager<Abstraction,soot.Unit> |
IInfoflowSolver.getMemoryManager()
Gets the memory manager used by this solver to reduce memory consumption
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
IInfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3)
Gets the end summary of the given method for the given incoming abstraction
|
void |
IFollowReturnsPastSeedsHandler.handleFollowReturnsPastSeeds(Abstraction d1,
soot.Unit u,
Abstraction d2)
This method is called when followReturnsPastSeeds is enabled and a taint
leaves a method for which we do not have any callers.
|
void |
IInfoflowSolver.injectContext(IInfoflowSolver otherSolver,
soot.SootMethod callee,
Abstraction d3,
soot.Unit callSite,
Abstraction d2,
Abstraction d1) |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
IInfoflowSolver.processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge)
Schedules the given edge for processing in the solver
|
void |
IInfoflowSolver.setMemoryManager(IMemoryManager<Abstraction,soot.Unit> memoryManager)
Sets the memory manager that shall be used to manage the abstractions
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
void |
InfoflowSolver.injectContext(IInfoflowSolver otherSolver,
soot.SootMethod callee,
Abstraction d3,
soot.Unit callSite,
Abstraction d2,
Abstraction d1) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
boolean |
InfoflowSolver.processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge) |
protected void |
InfoflowSolver.processExit(heros.solver.PathEdge<soot.Unit,Abstraction> edge) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
void |
InfoflowSolver.injectContext(IInfoflowSolver otherSolver,
soot.SootMethod callee,
Abstraction d3,
soot.Unit callSite,
Abstraction d2,
Abstraction d1) |
protected void |
InfoflowSolver.processExit(Abstraction d1,
soot.Unit n,
Abstraction d2) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
boolean |
InfoflowSolver.processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
SolverCallFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverReturnFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverCallToReturnFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverNormalFlowFunction.computeTargets(Abstraction source) |
abstract Set<Abstraction> |
SolverCallFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the call flow function for the given call-site abstraction
|
abstract Set<Abstraction> |
SolverCallToReturnFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the abstractions at the return site
|
abstract Set<Abstraction> |
SolverNormalFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the abstractions at the next node in the CFG.
|
abstract Set<Abstraction> |
SolverReturnFlowFunction.computeTargets(Abstraction source,
Abstraction calleeD1,
Collection<Abstraction> callerD1s)
Computes the abstractions at the return site.
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
SolverCallFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverReturnFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverCallToReturnFlowFunction.computeTargets(Abstraction source) |
Set<Abstraction> |
SolverNormalFlowFunction.computeTargets(Abstraction source) |
abstract Set<Abstraction> |
SolverCallFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the call flow function for the given call-site abstraction
|
abstract Set<Abstraction> |
SolverCallToReturnFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the abstractions at the return site
|
abstract Set<Abstraction> |
SolverNormalFlowFunction.computeTargets(Abstraction d1,
Abstraction d2)
Computes the abstractions at the next node in the CFG.
|
abstract Set<Abstraction> |
SolverReturnFlowFunction.computeTargets(Abstraction source,
Abstraction calleeD1,
Collection<Abstraction> callerD1s)
Computes the abstractions at the return site.
|
| 限定符和类型 | 方法和说明 |
|---|---|
abstract Set<Abstraction> |
SolverReturnFlowFunction.computeTargets(Abstraction source,
Abstraction calleeD1,
Collection<Abstraction> callerD1s)
Computes the abstractions at the return site.
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
InfoflowSolver.endSummary(soot.SootMethod m,
Abstraction d3) |
void |
InfoflowSolver.injectContext(IInfoflowSolver otherSolver,
soot.SootMethod callee,
Abstraction d3,
soot.Unit callSite,
Abstraction d2,
Abstraction d1) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Set<Abstraction> |
InfoflowSolver.computeCallFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeCallToReturnFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeNormalFlowFunction(heros.FlowFunction<Abstraction> flowFunction,
Abstraction d1,
Abstraction d2) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
protected Set<Abstraction> |
InfoflowSolver.computeReturnFlowFunction(heros.FlowFunction<Abstraction> retFunction,
Abstraction d1,
Abstraction d2,
soot.Unit callSite,
Collection<Abstraction> callerSideDs) |
boolean |
InfoflowSolver.processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge) |
protected void |
InfoflowSolver.processExit(heros.solver.PathEdge<soot.Unit,Abstraction> edge) |
| 限定符和类型 | 方法和说明 |
|---|---|
IMemoryManager<Abstraction,soot.Unit> |
IMemoryManagerFactory.getMemoryManager(boolean tracingEnabled,
FlowDroidMemoryManager.PathDataErasureMode erasePathData)
Creates a new instance of the memory manager
|
IMemoryManager<Abstraction,soot.Unit> |
DefaultMemoryManagerFactory.getMemoryManager(boolean tracingEnabled,
FlowDroidMemoryManager.PathDataErasureMode erasePathData) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
RecordingTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
IdentityTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperList.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperSet.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
EasyTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
ITaintPropagationWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Gets the aliases that a summarized method generates for the given
abstraction.
|
Set<Abstraction> |
TaintWrapperList.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
IReversibleTaintWrapper.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Checks an invocation statement for black-box taint propagation.
|
Set<Abstraction> |
TaintWrapperSet.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperList.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperSet.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
AbstractTaintWrapper.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
ITaintPropagationWrapper.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Checks an invocation statement for black-box taint propagation.
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
RecordingTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
IdentityTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperList.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperSet.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
EasyTaintWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
ITaintPropagationWrapper.getAliasesForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Gets the aliases that a summarized method generates for the given
abstraction.
|
Set<Abstraction> |
TaintWrapperList.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
IReversibleTaintWrapper.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Checks an invocation statement for black-box taint propagation.
|
Set<Abstraction> |
TaintWrapperSet.getInverseTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperList.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
TaintWrapperSet.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
AbstractTaintWrapper.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath) |
Set<Abstraction> |
ITaintPropagationWrapper.getTaintsForMethod(soot.jimple.Stmt stmt,
Abstraction d1,
Abstraction taintedPath)
Checks an invocation statement for black-box taint propagation.
|
boolean |
TaintWrapperList.isExclusive(soot.jimple.Stmt stmt,
Abstraction taintedPath) |
boolean |
TaintWrapperSet.isExclusive(soot.jimple.Stmt stmt,
Abstraction taintedPath) |
boolean |
AbstractTaintWrapper.isExclusive(soot.jimple.Stmt stmt,
Abstraction taintedPath) |
boolean |
ITaintPropagationWrapper.isExclusive(soot.jimple.Stmt stmt,
Abstraction taintedPath)
Gets whether the taints produced by this taint wrapper are exclusive, i.e. there are
no other taints than those produced by the wrapper.
|
| 限定符和类型 | 方法和说明 |
|---|---|
static String |
DebugAbstractionTree.createDotGraph(Abstraction absStart,
boolean printNeighbors)
Creates a dot graph with indices as labels for the abstractions (otherwise, it would be way too large).
|
Copyright © 2022 Fraunhofer SIT. All rights reserved.