| Package | Description |
|---|---|
| boomerang | |
| boomerang.jimple | |
| boomerang.poi | |
| boomerang.results | |
| boomerang.solver | |
| boomerang.stats | |
| boomerang.weights |
| Modifier and Type | Method and Description |
|---|---|
Statement |
Context.getStmt() |
Statement |
Query.stmt() |
| Modifier and Type | Method and Description |
|---|---|
protected WeightedBoomerang.FieldReadPOI |
WeightedBoomerang.createArrayFieldLoad(Statement s) |
protected WeightedBoomerang.FieldWritePOI |
WeightedBoomerang.createArrayFieldStore(Statement s) |
protected WeightedBoomerang.FieldReadPOI |
WeightedBoomerang.createFieldLoad(Statement s) |
protected WeightedBoomerang.FieldWritePOI |
WeightedBoomerang.createFieldStore(Statement s) |
void |
WeightedBoomerang.createPOI(soot.jimple.toolkits.ide.icfg.BiDiInterproceduralCFG<soot.Unit,soot.SootMethod> icfg,
AbstractBoomerangSolver<W> baseSolver,
AbstractBoomerangSolver<W> flowSolver,
WeightedBoomerang.FieldReadPOI fieldReadPOI,
Statement succ) |
Context |
IContextRequester.initialContext(Statement stmt) |
protected com.google.common.base.Optional<AllocVal> |
WeightedBoomerang.isAllocationNode(Statement s,
Val fact) |
static boolean |
WeightedBoomerang.isArrayLoad(Statement s) |
static boolean |
WeightedBoomerang.isArrayStore(Statement s) |
protected boolean |
WeightedBoomerang.isBackwardEnterCall(Statement stmt) |
static boolean |
WeightedBoomerang.isFieldLoad(Statement s) |
static boolean |
WeightedBoomerang.isFieldStore(Statement s) |
protected boolean |
WeightedBoomerang.isFirstStatementOfEntryPoint(Statement stmt) |
void |
UnbalancedPopHandler.trigger(Statement callStatement,
AbstractBoomerangSolver<W> solver) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
WeightedBoomerang.activateAllPois(boomerang.WeightedBoomerang.SolverPair pair,
INode<Node<Statement,Val>> start) |
protected void |
WeightedBoomerang.backwardHandleFieldRead(Node<Statement,Val> node,
WeightedBoomerang.FieldReadPOI fieldRead,
BackwardQuery sourceQuery) |
BackwardBoomerangResults<W> |
WholeProgramBoomerang.backwardSolveUnderScope(BackwardQuery backwardQuery,
ForwardQuery forwardQuery,
Node<Statement,Val> node) |
BackwardBoomerangResults<W> |
WeightedBoomerang.backwardSolveUnderScope(BackwardQuery backwardQuery,
ForwardQuery forwardQuery,
Node<Statement,Val> node) |
protected void |
WeightedBoomerang.forwardHandleFieldWrite(Node<Statement,Val> node,
WeightedBoomerang.FieldWritePOI fieldWritePoi,
ForwardQuery sourceQuery) |
protected boolean |
WeightedBoomerang.hasNoMethod(Node<Statement,Val> node) |
boolean |
WeightedBoomerang.preventCallRuleAdd(ForwardQuery sourceQuery,
Rule<Statement,INode<Val>,W> rule) |
| Constructor and Description |
|---|
BackwardQuery(Statement stmt,
Val variable) |
FieldReadPOI(Statement statement,
Val base,
Field field,
Val stored) |
FieldWritePOI(Statement statement,
Val base,
Field field,
Val stored) |
ForwardQuery(Statement stmt,
Val variable) |
Query(Statement stmt,
Val variable) |
WeightedForwardQuery(Statement stmt,
Val variable,
W weight) |
| Constructor and Description |
|---|
UnbalancedPopHandler(INode<Val> returningFact,
Transition<Statement,INode<Val>> trans,
W weight) |
| Modifier and Type | Field and Description |
|---|---|
protected Statement |
Val.unbalancedStmt |
| Modifier and Type | Method and Description |
|---|---|
Statement |
AllocVal.allocationStatement() |
static Statement |
Statement.epsilon() |
| Modifier and Type | Method and Description |
|---|---|
Val |
StaticFieldVal.asUnbalanced(Statement stmt) |
Val |
Val.asUnbalanced(Statement stmt) |
| Constructor and Description |
|---|
AllocVal(soot.Value v,
soot.SootMethod m,
soot.Value alloc,
Statement s) |
Val(soot.Value v,
soot.SootMethod m,
Statement unbalanced) |
| Modifier and Type | Field and Description |
|---|---|
protected Statement |
ExecuteImportFieldStmtPOI.curr |
protected Statement |
ExecuteImportFieldStmtPOI.succ |
| Modifier and Type | Field and Description |
|---|---|
protected WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> |
ExecuteImportFieldStmtPOI.baseAutomaton |
protected WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> |
ExecuteImportFieldStmtPOI.flowAutomaton |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
ExecuteImportFieldStmtPOI.activate(INode<Node<Statement,Val>> start) |
protected void |
ExecuteImportFieldStmtPOI.importStartingFrom(Transition<Field,INode<Node<Statement,Val>>> t) |
void |
ExecuteImportFieldStmtPOI.trigger(INode<Node<Statement,Val>> start) |
| Constructor and Description |
|---|
ExecuteImportFieldStmtPOI(WeightedBoomerang<W> boomerang,
AbstractBoomerangSolver<W> baseSolver,
AbstractBoomerangSolver<W> flowSolver,
AbstractPOI<Statement,Val,Field> poi,
Statement succ) |
| Constructor and Description |
|---|
ExecuteImportFieldStmtPOI(WeightedBoomerang<W> boomerang,
AbstractBoomerangSolver<W> baseSolver,
AbstractBoomerangSolver<W> flowSolver,
AbstractPOI<Statement,Val,Field> poi,
Statement succ) |
| Modifier and Type | Method and Description |
|---|---|
Statement |
NullPointer.getSourceStatement()
The source statement of the data-flow, i.e., the statement that assigns null to a variable.
|
Statement |
NullPointer.getStatement()
The statement at which a null pointer occurred.
|
| Modifier and Type | Method and Description |
|---|---|
com.google.common.collect.Table<Statement,Val,W> |
ForwardBoomerangResults.asStatementValWeightTable() |
com.google.common.collect.Table<Statement,Val,W> |
AbstractBoomerangResults.asStatementValWeightTable(ForwardQuery query) |
PAutomaton<Statement,INode<Val>> |
AbstractBoomerangResults.Context.getClosingContext() |
PAutomaton<Statement,INode<Val>> |
NullPointer.getClosingContext()
The closing context of a NullPointer provides the call stack via which a variable containing null returns to a
caller.
|
Set<Node<Statement,Val>> |
ForwardBoomerangResults.getDataFlowPath()
Computes the set of statements (and variables at these statements) relevant for data-flow propagation.
|
Set<Node<Statement,Val>> |
BackwardBoomerangResults.getDataFlowPath(ForwardQuery query)
Computes the set of statements (and variables at these statements) relevant for data-flow propagation.
|
Map<Statement,soot.SootMethod> |
ForwardBoomerangResults.getInvokedMethodOnInstance() |
com.google.common.collect.Table<Statement,Val,W> |
ForwardBoomerangResults.getObjectDestructingStatements() |
PAutomaton<Statement,INode<Val>> |
AbstractBoomerangResults.Context.getOpeningContext() |
PAutomaton<Statement,INode<Val>> |
NullPointer.getOpeningContext()
The opening context of a NullPointer provides the call stack under which the null pointer occurs.
|
| Modifier and Type | Method and Description |
|---|---|
Set<AccessPath> |
BackwardBoomerangResults.getAllAliases(Statement stmt)
Deprecated.
|
| Constructor and Description |
|---|
ExtractAllAliasListener(AbstractBoomerangSolver<W> fwSolver,
Set<AccessPath> results,
Statement stmt) |
NullPointer(Statement statement) |
NullPointer(Statement sourceStatement,
Val sourceVariable,
Statement statement,
Val variable,
PAutomaton<Statement,INode<Val>> openingContext,
PAutomaton<Statement,INode<Val>> closingContext) |
| Constructor and Description |
|---|
Context(Node<Statement,Val> node,
ForwardQuery forwardQuery) |
ExtractAllocationSiteStateListener(INode<Node<Statement,Val>> state,
BackwardQuery bwQuery,
ForwardQuery query) |
NullPointer(Statement sourceStatement,
Val sourceVariable,
Statement statement,
Val variable,
PAutomaton<Statement,INode<Val>> openingContext,
PAutomaton<Statement,INode<Val>> closingContext) |
NullPointer(Statement sourceStatement,
Val sourceVariable,
Statement statement,
Val variable,
PAutomaton<Statement,INode<Val>> openingContext,
PAutomaton<Statement,INode<Val>> closingContext) |
| Modifier and Type | Field and Description |
|---|---|
protected Map<Map.Entry<INode<Node<Statement,Val>>,Field>,INode<Node<Statement,Val>>> |
AbstractBoomerangSolver.generatedFieldState |
protected Map<Map.Entry<INode<Node<Statement,Val>>,Field>,INode<Node<Statement,Val>>> |
AbstractBoomerangSolver.generatedFieldState |
| Modifier and Type | Method and Description |
|---|---|
Statement |
AbstractBoomerangSolver.epsilonStmt() |
Statement |
StatementBasedCallTransitionListener.getStmt() |
Statement |
StatementBasedFieldTransitionListener.getStmt() |
| Modifier and Type | Method and Description |
|---|---|
Collection<? extends State> |
ForwardBoomerangSolver.computeCallFlow(soot.SootMethod caller,
Statement callSite,
soot.jimple.InvokeExpr invokeExpr,
Val fact,
soot.SootMethod callee,
soot.jimple.Stmt calleeSp) |
protected Collection<? extends State> |
BackwardBoomerangSolver.computeCallFlow(soot.SootMethod caller,
Statement returnSite,
Statement callSite,
soot.jimple.InvokeExpr invokeExpr,
Val fact,
soot.SootMethod callee,
soot.jimple.Stmt calleeSp) |
void |
AbstractBoomerangSolver.debugFieldAutomaton(Statement stmt) |
Set<Statement> |
AbstractBoomerangSolver.getPredsOf(Statement stmt) |
Map<RegExAccessPath,W> |
AbstractBoomerangSolver.getResultsAt(Statement stmt) |
Set<Statement> |
AbstractBoomerangSolver.getSuccsOf(Statement stmt) |
Set<Val> |
AbstractBoomerangSolver.getValsAtStatement(Statement exitStmt) |
| Modifier and Type | Method and Description |
|---|---|
void |
AbstractBoomerangSolver.addCallRule(Rule<Statement,INode<Val>,W> rule) |
void |
AbstractBoomerangSolver.addFieldRule(Rule<Field,INode<Node<Statement,Val>>,W> rule) |
protected void |
BackwardBoomerangSolver.callFlow(soot.SootMethod caller,
Node<Statement,Val> curr) |
protected void |
ForwardBoomerangSolver.callFlow(soot.SootMethod caller,
Node<Statement,Val> currNode,
soot.jimple.Stmt callSite,
soot.jimple.InvokeExpr invokeExpr) |
void |
BackwardBoomerangSolver.computeSuccessor(Node<Statement,Val> node) |
void |
ForwardBoomerangSolver.computeSuccessor(Node<Statement,Val> node) |
INode<Node<Statement,Val>> |
BackwardBoomerangSolver.generateFieldState(INode<Node<Statement,Val>> d,
Field loc) |
INode<Node<Statement,Val>> |
ForwardBoomerangSolver.generateFieldState(INode<Node<Statement,Val>> d,
Field loc) |
INode<Node<Statement,Val>> |
AbstractBoomerangSolver.generateFieldState(INode<Node<Statement,Val>> d,
Field loc) |
protected void |
BackwardBoomerangSolver.normalFlow(soot.SootMethod method,
Node<Statement,Val> currNode) |
abstract void |
MethodBasedFieldTransitionListener.onAddedTransition(Transition<Field,INode<Node<Statement,Val>>> t) |
abstract void |
StatementBasedFieldTransitionListener.onAddedTransition(Transition<Field,INode<Node<Statement,Val>>> t) |
abstract void |
StatementBasedCallTransitionListener.onAddedTransition(Transition<Statement,INode<Val>> t,
W w) |
void |
MethodBasedFieldTransitionListener.onWeightAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> aut) |
void |
MethodBasedFieldTransitionListener.onWeightAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> aut) |
void |
StatementBasedFieldTransitionListener.onWeightAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> aut) |
void |
StatementBasedFieldTransitionListener.onWeightAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> aut) |
void |
StatementBasedCallTransitionListener.onWeightAdded(Transition<Statement,INode<Val>> t,
W w,
WeightedPAutomaton<Statement,INode<Val>,W> aut) |
void |
StatementBasedCallTransitionListener.onWeightAdded(Transition<Statement,INode<Val>> t,
W w,
WeightedPAutomaton<Statement,INode<Val>,W> aut) |
protected boolean |
AbstractBoomerangSolver.preventCallTransitionAdd(Transition<Statement,INode<Val>> t,
W weight) |
protected boolean |
AbstractBoomerangSolver.preventFieldTransitionAdd(Transition<Field,INode<Node<Statement,Val>>> t,
W weight) |
protected void |
AbstractBoomerangSolver.processNode(Node<Statement,Val> witnessNode) |
protected void |
AbstractBoomerangSolver.returnFlow(soot.SootMethod method,
Node<Statement,Val> currNode) |
| Constructor and Description |
|---|
StatementBasedCallTransitionListener(Statement stmt) |
StatementBasedFieldTransitionListener(Statement stmt) |
| Modifier and Type | Method and Description |
|---|---|
Collection<? extends Node<Statement,Val>> |
IBoomerangStats.getForwardReachesNodes() |
Collection<? extends Node<Statement,Val>> |
SimpleBoomerangStats.getForwardReachesNodes() |
Collection<? extends Node<Statement,Val>> |
CSVBoomerangStatsWriter.getForwardReachesNodes() |
Collection<? extends Node<Statement,Val>> |
AdvancedBoomerangStats.getForwardReachesNodes() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
CSVBoomerangStatsWriter.addFieldGeneratedState(INode<Node<Statement,Val>> s) |
| Modifier and Type | Method and Description |
|---|---|
protected WeightFunctions<Statement,Val,Statement,DataFlowPathWeight> |
PathTrackingBoomerang.getBackwardCallWeights() |
protected WeightFunctions<Statement,Val,Statement,DataFlowPathWeight> |
PathTrackingBoomerang.getBackwardCallWeights() |
protected WeightFunctions<Statement,Val,Field,DataFlowPathWeight> |
PathTrackingBoomerang.getBackwardFieldWeights() |
protected WeightFunctions<Statement,Val,Statement,DataFlowPathWeight> |
PathTrackingBoomerang.getForwardCallWeights(ForwardQuery sourceQuery) |
protected WeightFunctions<Statement,Val,Statement,DataFlowPathWeight> |
PathTrackingBoomerang.getForwardCallWeights(ForwardQuery sourceQuery) |
protected WeightFunctions<Statement,Val,Field,DataFlowPathWeight> |
PathTrackingBoomerang.getForwardFieldWeights() |
| Modifier and Type | Method and Description |
|---|---|
DataFlowPathWeight |
PathTrackingWeightFunctions.pop(Node<Statement,Val> curr,
Statement location) |
DataFlowPathWeight |
PathTrackingWeightFunctions.push(Node<Statement,Val> curr,
Node<Statement,Val> succ,
Statement callSite) |
| Modifier and Type | Method and Description |
|---|---|
DataFlowPathWeight |
PathTrackingWeightFunctions.normal(Node<Statement,Val> curr,
Node<Statement,Val> succ) |
DataFlowPathWeight |
PathTrackingWeightFunctions.normal(Node<Statement,Val> curr,
Node<Statement,Val> succ) |
DataFlowPathWeight |
PathTrackingWeightFunctions.pop(Node<Statement,Val> curr,
Statement location) |
DataFlowPathWeight |
PathTrackingWeightFunctions.push(Node<Statement,Val> curr,
Node<Statement,Val> succ,
Statement callSite) |
DataFlowPathWeight |
PathTrackingWeightFunctions.push(Node<Statement,Val> curr,
Node<Statement,Val> succ,
Statement callSite) |
| Constructor and Description |
|---|
DataFlowPathWeight(Statement relevantStatement) |
Copyright © 2023. All rights reserved.