SandMark version 3.0


sandmark.obfuscate.varsplitter
Class VarSplitter

java.lang.Object
  |
  +--sandmark.Algorithm
        |
        +--sandmark.obfuscate.GeneralObfuscator
              |
              +--sandmark.obfuscate.MethodObfuscator
                    |
                    +--sandmark.obfuscate.varsplitter.VarSplitter

public class VarSplitter
extends MethodObfuscator

This is the VarSplitter class which splits a local variable so that all assignments of value go to a new location (in addition) and some of the references to the value of the variable are changed to the new location.

Author:
Justin Cappos (justin@cs.arizona.edu)

Constructor Summary
VarSplitter()
           
 
Method Summary
 void apply(ClassFileCollection cfc, java.lang.String classname, java.lang.String methname, java.lang.String signat)
          Performs the actual modification of the requested method...
 java.lang.String getAlgHTML()
          Returns an HTML description of this obfuscator.
 java.lang.String getAlgURL()
          Returns the URL at which you can find information about this obfuscator.
 java.lang.String getAuthor()
          Specifies the author of the algorithm.
 java.lang.String getAuthorEmail()
          Specifies the email address author of the algorithm.
 ConfigProperties getConfigProperties()
          Returns this obfuscator's configuration properties.
 java.lang.String getDescription()
          Specifies what this algorithm does, briefly.
 java.lang.String getLongName()
          Returns a long description of this obfuscator's name.
 ModificationProperty[] getMutations()
          Specifies the types of modifications that the algorithm makes.
 RequisiteProperty[] getPostsuggestions()
          Specifies a list of properties of algorithms that should be run on the target code after this algorithm is run, but are not necessary.
 RequisiteProperty[] getPreprohibited()
          Specifies a list of properties of algorithms that cannot be run on the target code before this algorithm is run.
 RequisiteProperty[] getPresuggestions()
          Specifies a list of properties of algorithms that should be run on the target code before this algorithm is run, but are not necessary.
 java.lang.String getShortName()
          Returns a short description of this obfuscator's name.
static void main(java.lang.String[] args)
           
 void setConfigProperties(ConfigProperties props)
          Sets this obfuscator's configuration properties to the given properties.
 
Methods inherited from class sandmark.obfuscate.MethodObfuscator
toString
 
Methods inherited from class sandmark.Algorithm
getPostprohibited, getPostrequisites, getPrerequisites, getReferences
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VarSplitter

public VarSplitter()
Method Detail

apply

public void apply(ClassFileCollection cfc,
                  java.lang.String classname,
                  java.lang.String methname,
                  java.lang.String signat)
           throws java.lang.Exception
Performs the actual modification of the requested method...

Specified by:
apply in class MethodObfuscator
Parameters:
cfc - the collection of classes for the entire application that this method is a part of
classname - the name of the class that this method is in
methname - the name of the method to obfuscate
signat - the signature of the method to obfuscate
java.lang.Exception

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
java.lang.Exception

getAlgURL

public java.lang.String getAlgURL()
Returns the URL at which you can find information about this obfuscator.

Specified by:
getAlgURL in class Algorithm
Returns:
a URL to the help.html file for the algorithm

getAlgHTML

public java.lang.String getAlgHTML()
Returns an HTML description of this obfuscator.

Specified by:
getAlgHTML in class Algorithm
Returns:
an HTML formatted description of what the algorithm does.

setConfigProperties

public void setConfigProperties(ConfigProperties props)
Sets this obfuscator's configuration properties to the given properties.

Specified by:
setConfigProperties in class Algorithm
Parameters:
props - the ConfigProperties to use.

getConfigProperties

public ConfigProperties getConfigProperties()
Returns this obfuscator's configuration properties.

Specified by:
getConfigProperties in class Algorithm
Returns:
the parameters for this run of the algorithm

getLongName

public java.lang.String getLongName()
Returns a long description of this obfuscator's name.

Specified by:
getLongName in class Algorithm
Returns:
the long name for this algorithm

getShortName

public java.lang.String getShortName()
Returns a short description of this obfuscator's name.

Specified by:
getShortName in class Algorithm
Returns:
the short name for this algorithm

getAuthor

public java.lang.String getAuthor()
Description copied from class: Algorithm
Specifies the author of the algorithm.

Specified by:
getAuthor in class Algorithm
Returns:
the name of the author of the algorithm

getAuthorEmail

public java.lang.String getAuthorEmail()
Description copied from class: Algorithm
Specifies the email address author of the algorithm.

Specified by:
getAuthorEmail in class Algorithm
Returns:
the email address of the author of the algorithm

getDescription

public java.lang.String getDescription()
Description copied from class: Algorithm
Specifies what this algorithm does, briefly. This description is displayed to the user in the log of execution in Sandmark.

Specified by:
getDescription in class Algorithm
Returns:
a brief description of the algorithm

getMutations

public ModificationProperty[] getMutations()
Description copied from class: Algorithm
Specifies the types of modifications that the algorithm makes. For more information see ModificationProperty.

Specified by:
getMutations in class Algorithm
Returns:
a list of mutations that this algorithm may do on the code

getPresuggestions

public RequisiteProperty[] getPresuggestions()
Description copied from class: Algorithm
Specifies a list of properties of algorithms that should be run on the target code before this algorithm is run, but are not necessary. See RequisiteProperty for more details. This method should only be overridden if the algorithm has a nonempty set of pre-suggestions.

Overrides:
getPresuggestions in class Algorithm
Returns:
a list of suggested algorithm properties to run before this algorithm.

getPostsuggestions

public RequisiteProperty[] getPostsuggestions()
Description copied from class: Algorithm
Specifies a list of properties of algorithms that should be run on the target code after this algorithm is run, but are not necessary. See RequisiteProperty for more details. This method should only be overridden if the algorithm has a nonempty set of post-suggestions.

Overrides:
getPostsuggestions in class Algorithm
Returns:
a list of suggested algorithm properties to run after this algorithm.

getPreprohibited

public RequisiteProperty[] getPreprohibited()
Description copied from class: Algorithm
Specifies a list of properties of algorithms that cannot be run on the target code before this algorithm is run. See RequisiteProperty for more details. This method should only be overridden if there is a nonempty set of prohibited algorithms.

Overrides:
getPreprohibited in class Algorithm
Returns:
a list of prohibited algorithms to run before this algorithm

SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003