public class Aliasing extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected com.google.common.cache.LoadingCache<soot.SootMethod,soot.jimple.toolkits.pointer.LocalMustAliasAnalysis> |
strongAliasAnalysis |
| 构造器和说明 |
|---|
Aliasing(IAliasingStrategy aliasingStrategy,
InfoflowManager manager) |
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
baseMatches(soot.Value baseValue,
Abstraction source)
Checks whether the given base value matches the base of the given taint
abstraction
|
static boolean |
baseMatchesStrict(soot.Value baseValue,
Abstraction source)
Checks whether the given base value matches the base of the given taint
abstraction and ends there.
|
static boolean |
canHaveAliases(AccessPath ap)
Gets whether the given access path can have aliases
|
boolean |
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 |
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 |
excludeMethodFromMustAlias(soot.SootMethod method)
Adds a new method to be excluded from the must-alias analysis
|
IAliasingStrategy |
getAliasingStrategy() |
boolean |
isStringConstructorCall(soot.jimple.Stmt iStmt)
Checks whether the given statement is a call to a String constructor
|
AccessPath |
mayAlias(AccessPath ap,
soot.Value val)
Gets whether a value and an access path may potentially point to the same
runtime object
|
boolean |
mayAlias(soot.Value val1,
soot.Value val2)
Gets whether two values may potentially point to the same runtime object
|
boolean |
mustAlias(soot.Local val1,
soot.Local val2,
soot.jimple.Stmt position)
Gets whether the two values must always point to the same runtime object
|
boolean |
mustAlias(soot.SootField field1,
soot.SootField field2)
Gets whether the two fields must always point to the same runtime object
|
protected final com.google.common.cache.LoadingCache<soot.SootMethod,soot.jimple.toolkits.pointer.LocalMustAliasAnalysis> strongAliasAnalysis
public Aliasing(IAliasingStrategy aliasingStrategy, InfoflowManager manager)
public void computeAliases(Abstraction d1, soot.jimple.Stmt src, soot.Value targetValue, Set<Abstraction> taintSet, soot.SootMethod method, Abstraction newAbs)
d1 - The context in which the variable has been taintedsrc - The statement that tainted the variabletargetValue - The target value which has been taintedtaintSet - The set to which all generated alias taints shall be addedmethod - The method containing srcnewAbs - The newly generated abstraction for the variable taintpublic boolean mayAlias(soot.Value val1,
soot.Value val2)
val1 - The first valueval2 - The second valuepublic AccessPath mayAlias(AccessPath ap, soot.Value val)
ap - The access pathval - The valuepublic boolean mustAlias(soot.SootField field1,
soot.SootField field2)
field1 - The first fieldfield2 - The second fieldpublic boolean mustAlias(soot.Local val1,
soot.Local val2,
soot.jimple.Stmt position)
field1 - The first valuefield2 - The second valueposition - The statement at which to check for an aliasing relationshippublic boolean canHaveAliases(soot.jimple.Stmt stmt,
soot.Value val,
Abstraction source)
val - The value which gets taintedsource - The source from which the taints comes frompublic boolean isStringConstructorCall(soot.jimple.Stmt iStmt)
iStmt - The statement to checkpublic static boolean canHaveAliases(AccessPath ap)
ap - The access path to checkpublic static boolean baseMatches(soot.Value baseValue,
Abstraction source)
baseValue - The value to checksource - The taint abstraction to checkpublic static boolean baseMatchesStrict(soot.Value baseValue,
Abstraction source)
baseValue - The value to checksource - The taint abstraction to checkpublic void excludeMethodFromMustAlias(soot.SootMethod method)
method - The method to be excludedpublic IAliasingStrategy getAliasingStrategy()
Copyright © 2022 Fraunhofer SIT. All rights reserved.