| Package | Description |
|---|---|
| boomerang | |
| boomerang.customize | |
| boomerang.jimple | |
| boomerang.poi | |
| boomerang.results | |
| boomerang.solver | |
| boomerang.stats | |
| boomerang.util | |
| boomerang.weights |
| Modifier and Type | Method and Description |
|---|---|
Val |
Query.var() |
| Modifier and Type | Method and Description |
|---|---|
com.google.common.base.Optional<AllocVal> |
BoomerangOptions.getAllocationVal(soot.SootMethod m,
soot.jimple.Stmt stmt,
Val fact,
ObservableICFG<soot.Unit,soot.SootMethod> icfg) |
com.google.common.base.Optional<AllocVal> |
DefaultBoomerangOptions.getAllocationVal(soot.SootMethod m,
soot.jimple.Stmt stmt,
Val fact,
ObservableICFG<soot.Unit,soot.SootMethod> icfg) |
com.google.common.base.Optional<AllocVal> |
IntAndStringBoomerangOptions.getAllocationVal(soot.SootMethod m,
soot.jimple.Stmt stmt,
Val fact,
ObservableICFG<soot.Unit,soot.SootMethod> icfg) |
protected com.google.common.base.Optional<AllocVal> |
WeightedBoomerang.isAllocationNode(Statement s,
Val fact) |
static boolean |
Util.isParameterLocal(Val val,
soot.SootMethod m) |
static boolean |
Util.isReturnOperator(Val val,
soot.jimple.Stmt stmt) |
static boolean |
Util.isThisLocal(Val val,
soot.SootMethod m) |
| 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) |
UnbalancedPopHandler(INode<Val> returningFact,
Transition<Statement,INode<Val>> trans,
W weight) |
| Modifier and Type | Method and Description |
|---|---|
abstract Collection<? extends State> |
EmptyCalleeFlow.getEmptyCalleeFlow(soot.SootMethod caller,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt succ) |
Collection<? extends State> |
BackwardEmptyCalleeFlow.getEmptyCalleeFlow(soot.SootMethod caller,
soot.jimple.Stmt callSite,
Val value,
soot.jimple.Stmt returnSite) |
Collection<? extends State> |
ForwardEmptyCalleeFlow.getEmptyCalleeFlow(soot.SootMethod caller,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite) |
protected abstract Collection<? extends State> |
EmptyCalleeFlow.systemArrayCopyFlow(soot.SootMethod caller,
soot.jimple.Stmt callSite,
Val value,
soot.jimple.Stmt returnSite) |
protected Collection<? extends State> |
BackwardEmptyCalleeFlow.systemArrayCopyFlow(soot.SootMethod caller,
soot.jimple.Stmt callSite,
Val value,
soot.jimple.Stmt returnSite) |
protected Collection<? extends State> |
ForwardEmptyCalleeFlow.systemArrayCopyFlow(soot.SootMethod caller,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite) |
| Modifier and Type | Class and Description |
|---|---|
class |
AllocVal |
class |
StaticFieldVal |
class |
ValWithFalseVariable |
| Modifier and Type | Method and Description |
|---|---|
Val |
StaticFieldVal.asUnbalanced(Statement stmt) |
Val |
Val.asUnbalanced(Statement stmt) |
static Val |
Val.zero() |
| 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) |
| Modifier and Type | Method and Description |
|---|---|
Val |
NullPointer.getSourceVariable()
The source variable at the source statement.
|
Val |
NullPointer.getVariable()
The variable that contains "null" and which provokes at
the statement a
NullPointerException. |
| 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.
|
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 |
|---|---|
void |
AbstractBoomerangResults.Context.addUnbalancedNodes(INode<Val> target) |
protected AbstractBoomerangResults.Context |
AbstractBoomerangResults.constructContextGraph(ForwardQuery forwardQuery,
Node<Statement,Val> targetFact) |
AbstractBoomerangResults.Context |
ForwardBoomerangResults.getContext(Node<Statement,Val> node) |
void |
ExtractAllocationSiteStateListener.onInTransitionAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> weightedPAutomaton) |
void |
ExtractAllocationSiteStateListener.onInTransitionAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> weightedPAutomaton) |
void |
ExtractAllocationSiteStateListener.onOutTransitionAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> weightedPAutomaton) |
void |
ExtractAllocationSiteStateListener.onOutTransitionAdded(Transition<Field,INode<Node<Statement,Val>>> t,
W w,
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> weightedPAutomaton) |
void |
ExtractAllAliasListener.onReachableNodeAdded(Node<Statement,Val> reachableNode) |
| Constructor and Description |
|---|
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 |
|---|---|
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) |
WeightedPAutomaton<Statement,INode<Val>,W> |
AbstractBoomerangSolver.getCallAutomaton() |
WeightedPushdownSystem<Statement,INode<Val>,W> |
AbstractBoomerangSolver.getCallPDS() |
WeightedPAutomaton<Field,INode<Node<Statement,Val>>,W> |
AbstractBoomerangSolver.getFieldAutomaton() |
WeightedPushdownSystem<Field,INode<Node<Statement,Val>>,W> |
AbstractBoomerangSolver.getFieldPDS() |
Map<Transition<Statement,INode<Val>>,W> |
AbstractBoomerangSolver.getTransitionsToFinalWeights() |
Set<Val> |
AbstractBoomerangSolver.getValsAtStatement(Statement exitStmt) |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
AbstractBoomerangSolver.assignsValue(soot.jimple.Stmt u,
Val value) |
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) |
protected Collection<State> |
BackwardBoomerangSolver.computeNormalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val fact,
soot.jimple.Stmt succ) |
Collection<State> |
ForwardBoomerangSolver.computeNormalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val fact,
soot.jimple.Stmt succ) |
protected abstract Collection<State> |
AbstractBoomerangSolver.computeNormalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt succ) |
protected Collection<? extends State> |
BackwardBoomerangSolver.computeReturnFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite,
soot.jimple.Stmt returnSite) |
Collection<? extends State> |
ForwardBoomerangSolver.computeReturnFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite,
soot.jimple.Stmt returnSite) |
protected abstract Collection<? extends State> |
AbstractBoomerangSolver.computeReturnFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite,
soot.jimple.Stmt returnSite) |
protected abstract Collection<? extends State> |
AbstractBoomerangSolver.getEmptyCalleeFlow(soot.SootMethod caller,
soot.jimple.Stmt callSite,
Val value,
soot.jimple.Stmt returnSite) |
protected boolean |
AbstractBoomerangSolver.isFieldLoadWithBase(soot.jimple.Stmt curr,
Val base) |
protected boolean |
AbstractBoomerangSolver.isFieldWriteWithBase(soot.jimple.Stmt curr,
Val base) |
protected boolean |
AbstractBoomerangSolver.isIdentityFlow(Val value,
soot.jimple.Stmt succ,
soot.SootMethod method,
Collection<State> out) |
boolean |
AbstractBoomerangSolver.isParameter(Val value,
soot.jimple.Stmt u) |
protected boolean |
BackwardBoomerangSolver.killFlow(soot.SootMethod m,
soot.jimple.Stmt curr,
Val value) |
protected boolean |
ForwardBoomerangSolver.killFlow(soot.SootMethod m,
soot.jimple.Stmt curr,
Val value) |
protected abstract boolean |
AbstractBoomerangSolver.killFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value) |
protected Collection<State> |
ForwardBoomerangSolver.normalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value) |
boolean |
AbstractBoomerangSolver.valueUsedInStatement(soot.jimple.Stmt u,
Val value) |
| 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) |
| 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.addCallGeneratedState(INode<Val> s) |
protected void |
CSVBoomerangStatsWriter.addFieldGeneratedState(INode<Node<Statement,Val>> s) |
| Modifier and Type | Method and Description |
|---|---|
Val |
AccessPath.getBase() |
Val |
RegExAccessPath.getVal() |
| Constructor and Description |
|---|
AccessPath(Val value) |
AccessPath(Val value,
Collection<Field> fields) |
AccessPath(Val value,
Field field) |
RegExAccessPath(Val val,
pathexpression.IRegEx<Field> fields) |
| Modifier and Type | Method and Description |
|---|---|
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,Field,DataFlowPathWeight> |
PathTrackingBoomerang.getForwardFieldWeights() |
| 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) |
Copyright © 2023. All rights reserved.