| 限定符和类型 | 字段和说明 |
|---|---|
protected com.google.common.cache.LoadingCache<soot.SootMethod,Map<AccessPath,Set<AccessPath>>> |
ImplicitFlowAliasStrategy.methodToAliases |
protected com.google.common.cache.LoadingCache<soot.SootMethod,Map<AccessPath,Set<AccessPath>>> |
ImplicitFlowAliasStrategy.methodToAliases |
| 限定符和类型 | 方法和说明 |
|---|---|
AccessPath |
Aliasing.mayAlias(AccessPath ap,
soot.Value val)
Gets whether a value and an access path may potentially point to the same
runtime object
|
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
Aliasing.canHaveAliases(AccessPath ap)
Gets whether the given access path can have aliases
|
boolean |
NullAliasStrategy.mayAlias(AccessPath ap1,
AccessPath ap2) |
boolean |
LazyAliasingStrategy.mayAlias(AccessPath ap1,
AccessPath ap2) |
boolean |
AbstractBulkAliasStrategy.mayAlias(AccessPath ap1,
AccessPath ap2) |
boolean |
IAliasingStrategy.mayAlias(AccessPath ap1,
AccessPath ap2)
Gets whether the two given access path may alias
|
AccessPath |
Aliasing.mayAlias(AccessPath ap,
soot.Value val)
Gets whether a value and an access path may potentially point to the same
runtime object
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected AccessPath |
Abstraction.accessPath
the access path contains the currently tainted variable or field
|
protected AccessPath |
SourceContext.accessPath |
| 限定符和类型 | 方法和说明 |
|---|---|
AccessPath |
AccessPathFactory.appendFields(AccessPath original,
soot.SootField[] apFields,
soot.Type[] apFieldTypes,
boolean taintSubFields)
Appends additional fields to the given access path
|
AccessPath |
AccessPath.clone() |
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val)
Copies the given access path with a new base value, but retains the base type
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField)
value val gets new base, fields are preserved.
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField,
boolean reduceBases)
value val gets new base, fields are preserved.
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField,
boolean reduceBases,
AccessPath.ArrayTaintType arrayTaintType)
value val gets new base, fields are preserved.
|
AccessPath |
AccessPathFactory.createAccessPath(soot.Value val,
boolean taintSubFields) |
AccessPath |
AccessPathFactory.createAccessPath(soot.Value val,
soot.SootField[] appendingFields,
boolean taintSubFields) |
AccessPath |
AccessPathFactory.createAccessPath(soot.Value val,
soot.SootField[] appendingFields,
soot.Type valType,
soot.Type[] appendingFieldTypes,
boolean taintSubFields,
boolean cutFirstField,
boolean reduceBases,
AccessPath.ArrayTaintType arrayTaintType) |
AccessPath |
AccessPathFactory.createAccessPath(soot.Value val,
soot.SootField[] appendingFields,
soot.Type valType,
soot.Type[] appendingFieldTypes,
boolean taintSubFields,
boolean cutFirstField,
boolean reduceBases,
AccessPath.ArrayTaintType arrayTaintType,
boolean canHaveImmutableAliases) |
AccessPath |
AccessPathFactory.createAccessPath(soot.Value val,
soot.Type valType,
boolean taintSubFields,
AccessPath.ArrayTaintType arrayTaintType) |
AccessPath |
AccessPath.dropLastField()
Gets a copy of this access path, but drops the last field.
|
AccessPath |
Abstraction.getAccessPath() |
AccessPath |
SourceContext.getAccessPath() |
static AccessPath |
AccessPath.getEmptyAccessPath() |
AccessPath |
AccessPathFactory.merge(AccessPath ap1,
AccessPath ap2)
Merges the two given access paths , i.e., adds the fields of ap2 to ap1.
|
| 限定符和类型 | 方法和说明 |
|---|---|
AccessPath |
AccessPathFactory.appendFields(AccessPath original,
soot.SootField[] apFields,
soot.Type[] apFieldTypes,
boolean taintSubFields)
Appends additional fields to the given access path
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val)
Copies the given access path with a new base value, but retains the base type
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField)
value val gets new base, fields are preserved.
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField,
boolean reduceBases)
value val gets new base, fields are preserved.
|
AccessPath |
AccessPathFactory.copyWithNewValue(AccessPath original,
soot.Value val,
soot.Type newType,
boolean cutFirstField,
boolean reduceBases,
AccessPath.ArrayTaintType arrayTaintType)
value val gets new base, fields are preserved.
|
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
|
boolean |
AccessPath.entails(AccessPath a2)
Checks whether this access path entails the given one, i.e. refers to all
objects the other access path also refers to.
|
AccessPath |
AccessPathFactory.merge(AccessPath ap1,
AccessPath ap2)
Merges the two given access paths , i.e., adds the fields of ap2 to ap1.
|
| 构造器和说明 |
|---|
Abstraction(AccessPath p,
Abstraction original)
Creates an abstraction as a copy of an existing abstraction, only exchanging
the access path. -> only used by AbstractionWithPath
|
Abstraction(ISourceSinkDefinition definition,
AccessPath sourceVal,
soot.jimple.Stmt sourceStmt,
Object userData,
boolean exceptionThrown,
boolean isImplicit) |
SourceContext(ISourceSinkDefinition definition,
AccessPath accessPath,
soot.jimple.Stmt stmt) |
SourceContext(ISourceSinkDefinition definition,
AccessPath accessPath,
soot.jimple.Stmt stmt,
Object userData) |
SourceContextAndPath(ISourceSinkDefinition definition,
AccessPath value,
soot.jimple.Stmt stmt) |
SourceContextAndPath(ISourceSinkDefinition definition,
AccessPath value,
soot.jimple.Stmt stmt,
Object userData) |
| 限定符和类型 | 字段和说明 |
|---|---|
protected AccessPath |
AbstractResultSourceSinkInfo.accessPath |
| 限定符和类型 | 方法和说明 |
|---|---|
AccessPath |
AbstractResultSourceSinkInfo.getAccessPath() |
AccessPath[] |
ResultSourceInfo.getPathAccessPaths() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
InfoflowResults.addResult(ISourceSinkDefinition sinkDefinition,
AccessPath sink,
soot.jimple.Stmt sinkStmt,
ISourceSinkDefinition sourceDefinition,
AccessPath source,
soot.jimple.Stmt sourceStmt) |
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) |
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<soot.jimple.Stmt> propagationPath,
List<AccessPath> propagationAccessPath)
Adds the given result to this data structure
|
| 限定符和类型 | 方法和说明 |
|---|---|
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<soot.jimple.Stmt> propagationPath,
List<AccessPath> propagationAccessPath)
Adds the given result to this data structure
|
| 构造器和说明 |
|---|
AbstractResultSourceSinkInfo(ISourceSinkDefinition definition,
AccessPath accessPath,
soot.jimple.Stmt stmt) |
AbstractResultSourceSinkInfo(ISourceSinkDefinition definition,
AccessPath accessPath,
soot.jimple.Stmt stmt,
Object userData) |
ResultSinkInfo(ISourceSinkDefinition definition,
AccessPath sink,
soot.jimple.Stmt context) |
ResultSourceInfo(ISourceSinkDefinition definition,
AccessPath source,
soot.jimple.Stmt context) |
ResultSourceInfo(ISourceSinkDefinition definition,
AccessPath source,
soot.jimple.Stmt context,
Object userData,
List<soot.jimple.Stmt> path,
List<AccessPath> pathAPs) |
| 构造器和说明 |
|---|
ResultSourceInfo(ISourceSinkDefinition definition,
AccessPath source,
soot.jimple.Stmt context,
Object userData,
List<soot.jimple.Stmt> path,
List<AccessPath> pathAPs) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
InfoflowResultsSerializer.writeAccessPath(AccessPath accessPath,
XMLStreamWriter writer)
Writes the given access path into the given XML stream writer
|
| 限定符和类型 | 方法和说明 |
|---|---|
AccessPath |
AccessPathTuple.toAccessPath(soot.Value baseVal,
InfoflowManager manager,
boolean canHaveImmutableAliases)
Creates an access path from an access path definition object
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected Set<AccessPath> |
SourceInfo.accessPaths |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<AccessPath> |
SourceInfo.getAccessPaths()
Returns all access paths which are tainted by this source
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected ISourceSinkDefinition |
BaseSourceSinkManager.getSinkDefinition(soot.jimple.Stmt sCallSite,
InfoflowManager manager,
AccessPath ap)
Gets the sink definition for the given call site and tainted access path
|
SinkInfo |
MethodBasedSourceSinkManager.getSinkInfo(soot.jimple.Stmt sCallSite,
InfoflowManager manager,
AccessPath ap) |
SinkInfo |
BaseSourceSinkManager.getSinkInfo(soot.jimple.Stmt sCallSite,
InfoflowManager manager,
AccessPath ap) |
SinkInfo |
DefaultSourceSinkManager.getSinkInfo(soot.jimple.Stmt sCallSite,
InfoflowManager manager,
AccessPath ap) |
SinkInfo |
ISourceSinkManager.getSinkInfo(soot.jimple.Stmt sCallSite,
InfoflowManager manager,
AccessPath ap)
Checks if the given access path at this statement will leak.
|
| 构造器和说明 |
|---|
SourceInfo(ISourceSinkDefinition definition,
AccessPath ap)
Creates a new instance of the
SourceInfo class. |
SourceInfo(ISourceSinkDefinition definition,
AccessPath ap,
Object userData)
Creates a new instance of the
AbstractSourceSinkInfo class. |
| 构造器和说明 |
|---|
SourceInfo(ISourceSinkDefinition definition,
Set<AccessPath> bundle)
Creates a new instance of the
SourceInfo class |
SourceInfo(ISourceSinkDefinition definition,
Set<AccessPath> bundle,
Object userData)
Creates a new instance of the
SourceInfo class |
| 限定符和类型 | 方法和说明 |
|---|---|
Set<AccessPath> |
RecordingTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
Set<AccessPath> |
IdentityTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
Set<AccessPath> |
EasyTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
abstract Set<AccessPath> |
AbstractTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath)
Checks an invocation statement for black-box taint propagation.
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<AccessPath> |
RecordingTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
Set<AccessPath> |
IdentityTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
Set<AccessPath> |
EasyTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
abstract Set<AccessPath> |
AbstractTaintWrapper.getTaintsForMethodInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath)
Checks an invocation statement for black-box taint propagation.
|
protected boolean |
RecordingTaintWrapper.isExclusiveInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
boolean |
IdentityTaintWrapper.isExclusiveInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
boolean |
EasyTaintWrapper.isExclusiveInternal(soot.jimple.Stmt stmt,
AccessPath taintedPath) |
protected abstract boolean |
AbstractTaintWrapper.isExclusiveInternal(soot.jimple.Stmt stmt,
AccessPath 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.
|
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
TypeUtils.checkCast(AccessPath accessPath,
soot.Type type)
Checks whether the type of the given taint can be cast to the given target
type
|
boolean |
TypeUtils.hasCompatibleTypesForCall(AccessPath apBase,
soot.SootClass dest) |
boolean |
SystemClassHandler.isTaintVisible(AccessPath taintedPath,
soot.SootMethod method)
If the base object is tainted and in a system class, but we reference some
field in an application object derived from the system class, no tainting
happens.
|
Copyright © 2022 Fraunhofer SIT. All rights reserved.