public abstract class AbstractInfoflow extends Object implements IInfoflow
| 限定符和类型 | 字段和说明 |
|---|---|
protected String |
androidPath |
protected InfoflowConfiguration |
config |
protected boolean |
forceAndroidJar |
protected soot.FastHierarchy |
hierarchy |
protected BiDirICFGFactory |
icfgFactory |
protected IIPCManager |
ipcManager |
protected INativeCallHandler |
nativeCallHandler |
protected IPathBuilderFactory |
pathBuilderFactory |
protected Collection<? extends PostAnalysisHandler> |
postProcessors |
protected Collection<? extends PreAnalysisHandler> |
preProcessors |
protected IInfoflowConfig |
sootConfig |
protected ITaintPropagationWrapper |
taintWrapper |
| 构造器和说明 |
|---|
AbstractInfoflow()
Creates a new instance of the abstract info flow problem
|
AbstractInfoflow(BiDirICFGFactory icfgFactory,
String androidPath,
boolean forceAndroidJar)
Creates a new instance of the abstract info flow problem
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
computeInfoflow(String appPath,
String libPath,
Collection<String> entryPoints,
Collection<String> sources,
Collection<String> sinks)
Computes the information flow on a list of entry point methods.
|
void |
computeInfoflow(String appPath,
String libPath,
IEntryPointCreator entryPointCreator,
List<String> sources,
List<String> sinks)
Computes the information flow on a list of entry point methods.
|
void |
computeInfoflow(String libPath,
String appPath,
String entryPoint,
Collection<String> sources,
Collection<String> sinks)
Computes the information flow on a single method.
|
protected void |
constructCallgraph()
Constructs the callgraph
|
InfoflowConfiguration |
getConfig()
Gets the configuration to be used for the data flow analysis
|
protected LibraryClassPatcher |
getLibraryClassPatcher() |
ITaintPropagationWrapper |
getTaintWrapper()
Gets the taint wrapper to be used for propagating taints over unknown
(library) callees.
|
protected void |
initializeSoot(String appPath,
String libPath,
Collection<String> classes)
Initializes Soot.
|
protected void |
initializeSoot(String appPath,
String libPath,
Collection<String> classes,
String extraSeed)
Initializes Soot.
|
void |
setConfig(InfoflowConfiguration config)
Sets the configuration to be used for the data flow analysis
|
static void |
setGeomPtaSpecificOptions() |
void |
setIPCManager(IIPCManager ipcManager) |
void |
setNativeCallHandler(INativeCallHandler handler)
Sets the handler class to be used for modeling the effects of native methods
on the taint state
|
void |
setPathBuilderFactory(IPathBuilderFactory factory)
Sets the path builder factory to be used in subsequent data flow analyses
|
void |
setPostProcessors(Collection<? extends PostAnalysisHandler> postprocessors)
Sets the set of post-processors that shall be executed after the data flow
analysis has finished
|
void |
setPreProcessors(Collection<? extends PreAnalysisHandler> preprocessors)
List of preprocessors that need to be executed in order before the
information flow.
|
void |
setSootConfig(IInfoflowConfig config)
Sets the Soot configuration callback to be used for this analysis
|
protected void |
setSourcePrec() |
void |
setTaintWrapper(ITaintPropagationWrapper wrapper)
Sets the taint wrapper to be used for propagating taints over unknown
(library) callees.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitabortAnalysis, addResultsAvailableHandler, computeInfoflow, computeInfoflow, getCollectedSinks, getCollectedSources, getResults, isResultAvailable, removeResultsAvailableHandler, setBackwardsPropagationHandler, setExecutorFactory, setMemoryManagerFactory, setPropagationRuleManagerFactory, setTaintPropagationHandlerprotected IPathBuilderFactory pathBuilderFactory
protected InfoflowConfiguration config
protected ITaintPropagationWrapper taintWrapper
protected INativeCallHandler nativeCallHandler
protected IIPCManager ipcManager
protected final BiDirICFGFactory icfgFactory
protected Collection<? extends PreAnalysisHandler> preProcessors
protected Collection<? extends PostAnalysisHandler> postProcessors
protected final String androidPath
protected final boolean forceAndroidJar
protected IInfoflowConfig sootConfig
protected soot.FastHierarchy hierarchy
public AbstractInfoflow()
public AbstractInfoflow(BiDirICFGFactory icfgFactory, String androidPath, boolean forceAndroidJar)
icfgFactory - The interprocedural CFG to be used by the
InfoFlowProblemandroidPath - If forceAndroidJar is false, this is the base
directory of the platform files in the Android SDK. If
forceAndroidJar is true, this is the full path of a
single android.jar file.forceAndroidJar - True if a single platform JAR file shall be forced,
false if Soot shall pick the appropriate platform
versionpublic InfoflowConfiguration getConfig()
IInfoflowpublic void setConfig(InfoflowConfiguration config)
IInfoflowpublic void setTaintWrapper(ITaintPropagationWrapper wrapper)
ITaintWrapperDataFlowAnalysissetTaintWrapper 在接口中 ITaintWrapperDataFlowAnalysiswrapper - The taint wrapper to use or null to disable taint wrappingpublic void setNativeCallHandler(INativeCallHandler handler)
IInfoflowsetNativeCallHandler 在接口中 IInfoflowhandler - The native call handler to usepublic ITaintPropagationWrapper getTaintWrapper()
ITaintWrapperDataFlowAnalysisgetTaintWrapper 在接口中 ITaintWrapperDataFlowAnalysispublic void setPreProcessors(Collection<? extends PreAnalysisHandler> preprocessors)
IInfoflowsetPreProcessors 在接口中 IInfoflowpreprocessors - the pre-processorspublic void setPostProcessors(Collection<? extends PostAnalysisHandler> postprocessors)
IInfoflowsetPostProcessors 在接口中 IInfoflowpostprocessors - The post-processors to execute on the resultspublic void computeInfoflow(String appPath, String libPath, IEntryPointCreator entryPointCreator, List<String> sources, List<String> sinks)
IInfoflowcomputeInfoflow 在接口中 IInfoflowappPath - The path containing the client program's fileslibPath - The path to the main folder of the (unpacked)
library class filesentryPointCreator - the entry point creator to use for generating the
dummy main methodsources - list of source class+method (as string conforms to
SootMethod representation)sinks - list of sink class+method (as string conforms to
SootMethod representation)public void computeInfoflow(String appPath, String libPath, Collection<String> entryPoints, Collection<String> sources, Collection<String> sinks)
IInfoflowcomputeInfoflow 在接口中 IInfoflowappPath - The path containing the client program's fileslibPath - the path to the main folder of the (unpacked) library
class filesentryPoints - the entryPoints (string conforms to SootMethod
representation)sources - list of source class+method (as string conforms to
SootMethod representation)sinks - list of sink class+method (as string conforms to
SootMethod representation)public void computeInfoflow(String libPath, String appPath, String entryPoint, Collection<String> sources, Collection<String> sinks)
IInfoflowcomputeInfoflow 在接口中 IInfoflowlibPath - The path containing the client program's filesappPath - the path to the main folder of the (unpacked) library class
filesentryPoint - the main method to analyzesources - list of source class+method (as string conforms to
SootMethod representation)sinks - list of sink class+method (as string conforms to SootMethod
representation)protected void initializeSoot(String appPath, String libPath, Collection<String> classes)
appPath - The application path containing the analysis clientlibPath - The Soot classpath containing the librariesclasses - The set of classes that shall be checked for data flow
analysis seeds. All sources in these classes are used as
seeds.protected void initializeSoot(String appPath, String libPath, Collection<String> classes, String extraSeed)
appPath - The application path containing the analysis clientlibPath - The Soot classpath containing the librariesclasses - The set of classes that shall be checked for data flow
analysis seeds. All sources in these classes are used as
seeds. If a non-empty extra seed is given, this one is used
too.protected void setSourcePrec()
public static void setGeomPtaSpecificOptions()
public void setSootConfig(IInfoflowConfig config)
IInfoflowsetSootConfig 在接口中 IInfoflowconfig - The configuration callback to be used for the analysispublic void setIPCManager(IIPCManager ipcManager)
setIPCManager 在接口中 IInfoflowpublic void setPathBuilderFactory(IPathBuilderFactory factory)
IInfoflowsetPathBuilderFactory 在接口中 IInfoflowfactory - The path bilder factory to use for constructing path
reconstruction algorithmsprotected void constructCallgraph()
protected LibraryClassPatcher getLibraryClassPatcher()
Copyright © 2022 Fraunhofer SIT. All rights reserved.