dk.brics.string.external
Class MainExternalVisibility

java.lang.Object
  extended by dk.brics.string.external.MainExternalVisibility
All Implemented Interfaces:
ExternalVisibility

public class MainExternalVisibility
extends Object
implements ExternalVisibility

Treats only main methods as externally visible, and no fields as externally visible. Here, a main method is any public and static method named "main" whose only parameter has type String[].

This is sound and quite precise for analyzing standalone applications that don't use callbacks to external code.

Author:
Asger

Constructor Summary
MainExternalVisibility()
           
 
Method Summary
 boolean isExternallyVisibleField(SootField field)
          Defines which fields are seen by the string analysis as being acecssible from unknown code.
 boolean isExternallyVisibleMethod(SootMethod sm)
          Defines which methods are seen by the string analysis as being accessible from unknown code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MainExternalVisibility

public MainExternalVisibility()
Method Detail

isExternallyVisibleField

public boolean isExternallyVisibleField(SootField field)
Description copied from interface: ExternalVisibility
Defines which fields are seen by the string analysis as being acecssible from unknown code. Note that this is also called for private fields, so a reasonable implementation should return false for such fields.

An externally visible field is considered to be corrupt, meaning it can spontaneously change value.

Specified by:
isExternallyVisibleField in interface ExternalVisibility
Parameters:
field - a field in the application being analyzed
Returns:
true if the field is externally visible.

isExternallyVisibleMethod

public boolean isExternallyVisibleMethod(SootMethod sm)
Description copied from interface: ExternalVisibility
Defines which methods are seen by the string analysis as being accessible from unknown code. The arguments to these methods can contain any values, and the return values might escape to unknown code.

Specified by:
isExternallyVisibleMethod in interface ExternalVisibility
Parameters:
sm - a method in the analyzed code.
Returns:
whether the method could possibly be called from unknown code.


Copyright © 2003-2009 Anders Møller, Aske Simon Christensen, Asger Feldthaus.