public class InfoflowResults extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected List<String> |
exceptions |
protected InfoflowPerformanceData |
performanceData |
protected soot.util.MultiMap<ResultSinkInfo,ResultSourceInfo> |
results |
static int |
TERMINATION_DATA_FLOW_OOM |
static int |
TERMINATION_DATA_FLOW_TIMEOUT |
static int |
TERMINATION_PATH_RECONSTRUCTION_OOM |
static int |
TERMINATION_PATH_RECONSTRUCTION_TIMEOUT |
static int |
TERMINATION_SUCCESS |
protected int |
terminationState |
| 构造器和说明 |
|---|
InfoflowResults() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addAll(InfoflowResults results)
Adds all results from the given data structure to this one
|
void |
addAll(Set<DataFlowResult> results)
Adds the given data flow results to this result object
|
void |
addException(String ex)
Adds an exception that has occurred during the data flow analysis to this
result object
|
void |
addPerformanceData(InfoflowPerformanceData performanceData)
Adds the given performance data to this result object
|
void |
addResult(DataFlowResult res)
Adds the given data flow result to this data structure
|
void |
addResult(ISourceSinkDefinition sinkDefinition,
AccessPath sink,
soot.jimple.Stmt sinkStmt,
ISourceSinkDefinition sourceDefinition,
AccessPath source,
soot.jimple.Stmt sourceStmt) |
heros.solver.Pair<ResultSourceInfo,ResultSinkInfo> |
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> |
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
|
void |
addResult(ResultSinkInfo sink,
ResultSourceInfo source)
Adds the given result to this data structure
|
void |
clear()
Removes all results from the data structure
|
boolean |
containsSink(soot.jimple.Stmt sink)
Checks whether this result object contains a sink that exactly matches the
given value.
|
boolean |
containsSinkMethod(String sinkSignature)
Checks whether this result object contains a sink with the given method
signature
|
boolean |
equals(Object obj) |
List<String> |
getExceptions()
Gets the exceptions that have happened during the data flow analysis.
|
InfoflowPerformanceData |
getPerformanceData()
Gets the performance data on this FlowDroid run
|
soot.util.MultiMap<ResultSinkInfo,ResultSourceInfo> |
getResults()
Gets all results in this object as a hash map from sinks to sets of sources.
|
Set<DataFlowResult> |
getResultSet()
Gets the data flow results in a flat set
|
int |
getTerminationState()
Gets the termination state that describes whether the data flow analysis
terminated normally or whether one or more phases terminated prematurely due
to a timeout or an out-of-memory condition
|
int |
hashCode() |
boolean |
isEmpty()
Gets whether this result object is empty, i.e. contains no information flows
|
boolean |
isPathBetween(soot.jimple.Stmt sink,
soot.jimple.Stmt source)
Checks whether there is a path between the given source and sink.
|
boolean |
isPathBetween(String sink,
String source)
Checks whether there is a path between the given source and sink.
|
boolean |
isPathBetweenMethods(String sinkSignature,
String sourceSignature)
Checks whether there is an information flow between the two given methods
(specified by their respective Soot signatures).
|
int |
numConnections()
Gets the total number of source-to-sink connections.
|
void |
printResults()
Prints all results stored in this object to the standard output
|
void |
printResults(Writer wr)
Prints all results stored in this object to the given writer
|
void |
remove(DataFlowResult result)
Removes the given data flow result from this result set
|
void |
setPerformanceData(InfoflowPerformanceData performanceData)
Sets the performance data on this FlowDroid run
|
void |
setTerminationState(int terminationState)
Sets the termination state that describes whether the data flow analysis
terminated normally or whether one or more phases terminated prematurely due
to a timeout or an out-of-memory condition
|
int |
size()
Gets the number of entries in this result object
|
String |
toString() |
boolean |
wasAbortedTimeout()
Gets whether the analysis was aborted due to a timeout
|
boolean |
wasTerminatedOutOfMemory()
Gets whether the analysis was terminated because it ran out of memory
|
public static final int TERMINATION_SUCCESS
public static final int TERMINATION_DATA_FLOW_TIMEOUT
public static final int TERMINATION_DATA_FLOW_OOM
public static final int TERMINATION_PATH_RECONSTRUCTION_TIMEOUT
public static final int TERMINATION_PATH_RECONSTRUCTION_OOM
protected volatile soot.util.MultiMap<ResultSinkInfo,ResultSourceInfo> results
protected volatile InfoflowPerformanceData performanceData
protected int terminationState
public List<String> getExceptions()
public void addException(String ex)
ex - The exception to addpublic int size()
public int numConnections()
public boolean isEmpty()
public boolean containsSink(soot.jimple.Stmt sink)
sink - The sink to check forpublic boolean containsSinkMethod(String sinkSignature)
sinkSignature - The method signature to check forpublic void addResult(ISourceSinkDefinition sinkDefinition, AccessPath sink, soot.jimple.Stmt sinkStmt, ISourceSinkDefinition sourceDefinition, AccessPath source, soot.jimple.Stmt sourceStmt)
public heros.solver.Pair<ResultSourceInfo,ResultSinkInfo> addResult(ISourceSinkDefinition sinkDefinition, AccessPath sink, soot.jimple.Stmt sinkStmt, ISourceSinkDefinition sourceDefinition, AccessPath source, soot.jimple.Stmt sourceStmt, Object userData, List<Abstraction> propagationPath)
public heros.solver.Pair<ResultSourceInfo,ResultSinkInfo> 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)
sinkDefinition - The definition of the sinksink - The access path that arrived at the sink
statementsinkStmt - The sink statementsourceDefinition - The definition of the sourcesource - The access path that originated from the source
statementsourceStmt - The source statementuserData - Optional user data to associate with the sourcepropagationPath - The statements over which the data flow was
propagatedpropagationAccessPath - The access paths along the data flow propagation
pathpublic void addResult(DataFlowResult res)
res - The data flow result to addpublic void addResult(ResultSinkInfo sink, ResultSourceInfo source)
sink - The sink at which the taint arrivedsource - The source from which the taint originatedpublic void addAll(InfoflowResults results)
results - The data structure from which to copy the resultspublic void addAll(Set<DataFlowResult> results)
results - The data flow results to addpublic soot.util.MultiMap<ResultSinkInfo,ResultSourceInfo> getResults()
public Set<DataFlowResult> getResultSet()
public boolean isPathBetween(soot.jimple.Stmt sink,
soot.jimple.Stmt source)
sink - The sink to which there may be a pathsource - The source from which there may be a pathpublic boolean isPathBetween(String sink, String source)
sink - The sink to which there may be a pathsource - The source from which there may be a pathpublic boolean isPathBetweenMethods(String sinkSignature, String sourceSignature)
sinkSignature - The sink to which there may be a pathsourceSignature - The source from which there may be a pathpublic void printResults()
public void printResults(Writer wr) throws IOException
wr - The writer to which to print the resultsIOException - Thrown when data writing failspublic void clear()
public int getTerminationState()
public void setTerminationState(int terminationState)
terminationState - The termination statepublic boolean wasAbortedTimeout()
public boolean wasTerminatedOutOfMemory()
public InfoflowPerformanceData getPerformanceData()
public void setPerformanceData(InfoflowPerformanceData performanceData)
performanceData - The performance data on this FlowDroid runpublic void addPerformanceData(InfoflowPerformanceData performanceData)
performanceData - The performance data to addpublic void remove(DataFlowResult result)
result - The result to removeCopyright © 2022 Fraunhofer SIT. All rights reserved.