Uses of Interface
sootup.callgraph.reflection.ReflectionModel
Packages that use ReflectionModel
Package
Description
Points-to analysis graph (PAG) data structures, based on Soot/jimple/spark/pag with significant
modifications.
-
Uses of ReflectionModel in qilin.core.config
Methods in qilin.core.config that return ReflectionModelModifier and TypeMethodDescriptionPointerAnalysisConfig.getReflectionModel()Explicit reflection model, ornullif none was set - thenPointerAnalysisConfig.getReflectionLogPath()(if any) is resolved viaTamiflexReflectionModel.Methods in qilin.core.config with parameters of type ReflectionModelModifier and TypeMethodDescriptionPointerAnalysisConfig.Builder.reflectionModel(ReflectionModel reflectionModel) Shared call-graph reflection model; takes precedence overPointerAnalysisConfig.Builder.reflectionLogPath. -
Uses of ReflectionModel in qilin.core.effect
Constructors in qilin.core.effect with parameters of type ReflectionModelModifierConstructorDescriptionReflectionEffectModel(ReflectionModel delegate, PTAScene ptaScene, PAG pag) -
Uses of ReflectionModel in qilin.core.pag
Fields in qilin.core.pag declared as ReflectionModelMethods in qilin.core.pag that return ReflectionModel -
Uses of ReflectionModel in sootup.callgraph
Constructors in sootup.callgraph with parameters of type ReflectionModelModifierConstructorDescriptionprotectedAbstractCallGraphAlgorithm(@NonNull View view, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel) LikeAbstractCallGraphAlgorithm(View, CallResolver, VirtualCallResolver, boolean), plus aReflectionModelrewriting each inspected body so resolved reflective calls become plain call edges.protectedAbstractCallGraphAlgorithm(@NonNull View view, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel, @NonNull DynamicInvokeResolver dynamicInvokeResolver) Widest constructor: aReflectionModelrewriting each inspected body so resolved reflective calls become plain call edges, and aDynamicInvokeResolverdeciding the targets of invokedynamic call sites.ClassHierarchyAnalysisAlgorithm(@NonNull View view, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel) LikeClassHierarchyAnalysisAlgorithm(View, CallResolver, VirtualCallResolver, boolean), plus aReflectionModelthat turns resolved reflective calls into plain call edges.ClassHierarchyAnalysisAlgorithm(@NonNull View view, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel, @NonNull DynamicInvokeResolver dynamicInvokeResolver) Widest CHA constructor: additionally takes aReflectionModelthat turns resolved reflective calls into plain call edges and aDynamicInvokeResolverdeciding the targets of invokedynamic call sites.RapidTypeAnalysisAlgorithm(@NonNull View view, @NonNull Set<ClassType> preInstantiatedClasses, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel) LikeRapidTypeAnalysisAlgorithm(View, Set, CallResolver, VirtualCallResolver, boolean), plus aReflectionModel; classes it instantiates reflectively (e.g.RapidTypeAnalysisAlgorithm(@NonNull View view, @NonNull Set<ClassType> preInstantiatedClasses, @NonNull CallResolver callResolver, @NonNull VirtualCallResolver virtualCallResolver, boolean seedEntryPointClinits, @NonNull ReflectionModel reflectionModel, @NonNull DynamicInvokeResolver dynamicInvokeResolver) Widest RTA constructor: additionally takes aReflectionModel(classes it instantiates reflectively, e.g. -
Uses of ReflectionModel in sootup.callgraph.config
Methods in sootup.callgraph.config that return ReflectionModelModifier and TypeMethodDescription@NonNull ReflectionModelCommonCallGraphSettings.getReflectionModel()Reflection model to apply;none()if never set.Methods in sootup.callgraph.config with parameters of type ReflectionModelModifier and TypeMethodDescription@NonNull CallGraphConfigBuilderCallGraphConfigBuilder.reflectionModel(@NonNull ReflectionModel reflectionModel) Makes reflective calls explicit before calls are resolved (e.g. -
Uses of ReflectionModel in sootup.callgraph.reflection
Classes in sootup.callgraph.reflection that implement ReflectionModelModifier and TypeClassDescriptionclassBase forReflectionModels: dispatches each reflective call site to a per-API hook and splices the returned stmts in front of it (the original call stays).classResolves reflection according to dynamic traces recorded by TamiFlex.Methods in sootup.callgraph.reflection that return ReflectionModelModifier and TypeMethodDescriptionstatic @NonNull ReflectionModelReflectionModel.none()Model that resolves nothing - the default everywhere.