public interface IInfoflowSolver
| 限定符和类型 | 方法和说明 |
|---|---|
void |
cleanup()
Cleans up some unused memory.
|
Set<heros.solver.Pair<soot.Unit,Abstraction>> |
endSummary(soot.SootMethod m,
Abstraction d3)
Gets the end summary of the given method for the given incoming abstraction
|
IMemoryManager<Abstraction,soot.Unit> |
getMemoryManager()
Gets the memory manager used by this solver to reduce memory consumption
|
long |
getPropagationCount()
Gets the number of edges propagated by the solver
|
AbstractInfoflowProblem |
getTabulationProblem()
Gets the IFDS problem solved by this solver
|
void |
injectContext(IInfoflowSolver otherSolver,
soot.SootMethod callee,
Abstraction d3,
soot.Unit callSite,
Abstraction d2,
Abstraction d1) |
boolean |
processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge)
Schedules the given edge for processing in the solver
|
void |
setFollowReturnsPastSeedsHandler(IFollowReturnsPastSeedsHandler handler)
Sets a handler that will be called when a followReturnsPastSeeds case
happens, i.e., a taint leaves a method for which we have not seen any callers
|
void |
setMaxAbstractionPathLength(int maxAbstractionPathLength)
Sets the maximum length of a taint propagation path.
|
void |
setMaxCalleesPerCallSite(int maxCalleesPerCallSite)
Sets the maximum number of callees that are allowed per call site.
|
void |
setMaxJoinPointAbstractions(int maxJoinPointAbstractions)
Sets the maximum number of abstractions that shall be recorded per join
point.
|
void |
setMemoryManager(IMemoryManager<Abstraction,soot.Unit> memoryManager)
Sets the memory manager that shall be used to manage the abstractions
|
void |
setPeerGroup(SolverPeerGroup solverPeerGroup)
Sets the peer group in which this solver operates.
|
void |
setPredecessorShorteningMode(PredecessorShorteningMode mode)
Sets whether abstractions on method returns shall be connected to the
respective call abstractions to shortcut paths.
|
void |
setSolverId(boolean solverId) |
void |
solve()
Solves the data flow problem
|
void |
terminate()
Notifies the solver that no further edges will be scheduled
|
boolean processEdge(heros.solver.PathEdge<soot.Unit,Abstraction> edge)
edge - The edge to schedule for processingSet<heros.solver.Pair<soot.Unit,Abstraction>> endSummary(soot.SootMethod m, Abstraction d3)
m - The method for which to get the end summaryd3 - The incoming fact (context) for which to get the end summaryvoid injectContext(IInfoflowSolver otherSolver, soot.SootMethod callee, Abstraction d3, soot.Unit callSite, Abstraction d2, Abstraction d1)
void cleanup()
void setFollowReturnsPastSeedsHandler(IFollowReturnsPastSeedsHandler handler)
handler - The handler to be called when a followReturnsPastSeeds case
happensvoid setMemoryManager(IMemoryManager<Abstraction,soot.Unit> memoryManager)
memoryManager - The memory manager that shall be used to manage the
abstractionsIMemoryManager<Abstraction,soot.Unit> getMemoryManager()
void setPredecessorShorteningMode(PredecessorShorteningMode mode)
mode - The strategy to use for shortening predecessor pathslong getPropagationCount()
void solve()
void setSolverId(boolean solverId)
AbstractInfoflowProblem getTabulationProblem()
void setMaxJoinPointAbstractions(int maxJoinPointAbstractions)
maxJoinPointAbstractions - The maximum number of abstractions per join
point, or -1 to record an arbitrary number of
join point abstractionsvoid setMaxCalleesPerCallSite(int maxCalleesPerCallSite)
maxCalleesPerCallSite - The maximum number of callees per call sitevoid setMaxAbstractionPathLength(int maxAbstractionPathLength)
maxAbstractionPathLength - The maximum number of abstractions on a
propagation pathvoid setPeerGroup(SolverPeerGroup solverPeerGroup)
solverPeerGroup - The solver peer groupvoid terminate()
Copyright © 2022 Fraunhofer SIT. All rights reserved.