public class PropagationRuleManager extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected InfoflowManager |
manager |
protected TaintPropagationResults |
results |
protected ITaintPropagationRule[] |
rules |
protected Abstraction |
zeroValue |
| 构造器和说明 |
|---|
PropagationRuleManager(InfoflowManager manager,
Abstraction zeroValue,
TaintPropagationResults results) |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<Abstraction> |
applyCallFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.SootMethod dest,
ByReferenceBoolean killAll)
Propagates a flow across a call site
|
Set<Abstraction> |
applyCallToReturnFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt)
Applies all rules to the call-to-return flow function
|
Set<Abstraction> |
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> |
applyNormalFlowFunction(Abstraction d1,
Abstraction source,
soot.jimple.Stmt stmt,
soot.jimple.Stmt destStmt)
Applies all rules to the normal flow function
|
Set<Abstraction> |
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> |
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
|
ITaintPropagationRule[] |
getRules()
Gets the array of rules registered in this manager object
|
protected final InfoflowManager manager
protected final Abstraction zeroValue
protected final TaintPropagationResults results
protected final ITaintPropagationRule[] rules
public PropagationRuleManager(InfoflowManager manager, Abstraction zeroValue, TaintPropagationResults results)
public Set<Abstraction> applyNormalFlowFunction(Abstraction d1, Abstraction source, soot.jimple.Stmt stmt, soot.jimple.Stmt destStmt)
d1 - The context abstractionsource - The incoming taint to propagate over the given statementstmt - The statement to which to apply the rulesdestStmt - The next statement to which control flow will continue after
processing stmtpublic Set<Abstraction> applyNormalFlowFunction(Abstraction d1, Abstraction source, soot.jimple.Stmt stmt, soot.jimple.Stmt destStmt, ByReferenceBoolean killSource, ByReferenceBoolean killAll)
d1 - The context abstractionsource - The incoming taint to propagate over the given statementstmt - The statement to which to apply the rulesdestStmt - The next statement to which control flow will continue after
processing stmtkillSource - Outgoing value for the rule to indicate whether the incoming taint
abstraction shall be killedkillAll - Outgoing value that receives whether all taints shall be killed
and nothing shall be propagated onwardspublic Set<Abstraction> applyCallFlowFunction(Abstraction d1, Abstraction source, soot.jimple.Stmt stmt, soot.SootMethod dest, ByReferenceBoolean killAll)
d1 - The context abstractionsource - The abstraction to propagate over the statementstmt - The statement at which to propagate the abstractiondest - The destination method into which to propagate the abstractionkillAll - Outgoing value for the rule to specify whether all taints shall be
killed, i.e., nothing shall be propagatedpublic Set<Abstraction> applyCallToReturnFlowFunction(Abstraction d1, Abstraction source, soot.jimple.Stmt stmt)
d1 - The context abstractionsource - The incoming taint to propagate over the given statementstmt - The statement to which to apply the rulespublic Set<Abstraction> applyCallToReturnFlowFunction(Abstraction d1, Abstraction source, soot.jimple.Stmt stmt, ByReferenceBoolean killSource, ByReferenceBoolean killAll, boolean noAddSource)
d1 - The context abstractionsource - The incoming taint to propagate over the given statementstmt - The statement to which to apply the ruleskillSource - Outgoing value for the rule to indicate whether the incoming taint
abstraction shall be killedpublic Set<Abstraction> applyReturnFlowFunction(Collection<Abstraction> callerD1s, Abstraction source, soot.jimple.Stmt stmt, soot.jimple.Stmt retSite, soot.jimple.Stmt callSite, ByReferenceBoolean killAll)
callerD1s - The context abstraction at the caller sidesource - The incoming taint to propagate over the given statementstmt - The statement to which to apply the rulesretSite - The return site to which the execution returns after leaving the
current methodcallSite - The call site of the call from which we returnkillAll - Outgoing value for the rule to specify whether all taints shall be
killed, i.e., nothing shall be propagatedpublic ITaintPropagationRule[] getRules()
Copyright © 2022 Fraunhofer SIT. All rights reserved.