SandMark version 3.0


sandmark.config
Class ModificationProperty

java.lang.Object
  |
  +--sandmark.config.RequisiteProperty
        |
        +--sandmark.config.ModificationProperty

public class ModificationProperty
extends RequisiteProperty

A ModificationProperty encapsulates information about dependencies between each obfuscation and watermarking algorithm. Specifically, it encapsulates a code mutation, like I_CHANGE_FIELD_NAMES represents the property that an algorithm modifies the names of the fields in the constant pool. It is essential that this information is consistent across all of sandmark, so this class has no public constructor. The only available modification properties are those listed in the static fields of this class. If there is a mutation not available that you would like added to ModificationProperty, please email kheffner@cs.arizona.edu.

Author:
Kelly Heffner

Field Summary
static ModificationProperty I_ADD_CLASSES
           
static ModificationProperty I_ADD_FIELDS
           
static ModificationProperty I_ADD_LOCAL_VARIABLES
          Any algorithm that adds locals to the method(s) it runs on should have this property.
static ModificationProperty I_ADD_METHOD_CODE
          Any algorithm that inserts code (of any form, whether it will ever execute or not) should have this property.
static ModificationProperty I_ADD_METHODS
           
static ModificationProperty I_CHANGE_CLASS_CONTENTS
           
static ModificationProperty I_CHANGE_CLASS_NAMES
           
static ModificationProperty I_CHANGE_CLASS_SCOPES
           
static ModificationProperty I_CHANGE_FIELD_NAMES
           
static ModificationProperty I_CHANGE_FIELD_SCOPES
           
static ModificationProperty I_CHANGE_FIELD_TYPES
           
static ModificationProperty I_CHANGE_LOCAL_VARIABLES
           
static ModificationProperty I_CHANGE_METHOD_BODIES
           
static ModificationProperty I_CHANGE_METHOD_NAMES
           
static ModificationProperty I_CHANGE_METHOD_SCOPES
           
static ModificationProperty I_CHANGE_METHOD_SIGNATURES
           
static ModificationProperty I_MODIFY_METHOD_CODE
          Any algorithm that edits instructions (like the local variable number, or which constant number is referenced) should have this property.
static ModificationProperty I_OBFUSCATE_IDENTIFIERS
           
static ModificationProperty I_PUBLICIZE_CLASSES
          Any of the publicizing algorithms should have this property.
static ModificationProperty I_PUBLICIZE_FIELDS
          Any of the publicizing algorithms should have this property.
static ModificationProperty I_PUBLICIZE_METHODS
          Any of the publicizing algorithms should have this property.
static ModificationProperty I_REMOVE_CLASSES
           
static ModificationProperty I_REMOVE_FIELDS
           
static ModificationProperty I_REMOVE_METHOD_CODE
          Any algorithm that deletes code from a method should have this property.
static ModificationProperty I_REMOVE_METHODS
           
static ModificationProperty I_REORDER_INSTRUCTIONS
           
static ModificationProperty p1
           
static ModificationProperty p2
           
static ModificationProperty p3
           
static ModificationProperty PERFORMANCE_DEGRADE_HIGH
           
static ModificationProperty PERFORMANCE_DEGRADE_LOW
           
static ModificationProperty PERFORMANCE_DEGRADE_MED
           
static ModificationProperty PERFORMANCE_DEGRADE_NONE
           
static ModificationProperty REFLECTION_UNSAFE
           
static ModificationProperty THREAD_UNSAFE
           
 
Method Summary
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

I_PUBLICIZE_FIELDS

public static final ModificationProperty I_PUBLICIZE_FIELDS
Any of the publicizing algorithms should have this property.


I_PUBLICIZE_METHODS

public static final ModificationProperty I_PUBLICIZE_METHODS
Any of the publicizing algorithms should have this property.


I_PUBLICIZE_CLASSES

public static final ModificationProperty I_PUBLICIZE_CLASSES
Any of the publicizing algorithms should have this property.


I_CHANGE_FIELD_TYPES

public static final ModificationProperty I_CHANGE_FIELD_TYPES

I_CHANGE_FIELD_NAMES

public static final ModificationProperty I_CHANGE_FIELD_NAMES

I_CHANGE_FIELD_SCOPES

public static final ModificationProperty I_CHANGE_FIELD_SCOPES

I_CHANGE_METHOD_NAMES

public static final ModificationProperty I_CHANGE_METHOD_NAMES

I_CHANGE_METHOD_SIGNATURES

public static final ModificationProperty I_CHANGE_METHOD_SIGNATURES

I_CHANGE_METHOD_SCOPES

public static final ModificationProperty I_CHANGE_METHOD_SCOPES

I_CHANGE_METHOD_BODIES

public static final ModificationProperty I_CHANGE_METHOD_BODIES

I_ADD_METHOD_CODE

public static final ModificationProperty I_ADD_METHOD_CODE
Any algorithm that inserts code (of any form, whether it will ever execute or not) should have this property.


I_REORDER_INSTRUCTIONS

public static final ModificationProperty I_REORDER_INSTRUCTIONS

I_REMOVE_METHOD_CODE

public static final ModificationProperty I_REMOVE_METHOD_CODE
Any algorithm that deletes code from a method should have this property.


I_MODIFY_METHOD_CODE

public static final ModificationProperty I_MODIFY_METHOD_CODE
Any algorithm that edits instructions (like the local variable number, or which constant number is referenced) should have this property.


I_ADD_LOCAL_VARIABLES

public static final ModificationProperty I_ADD_LOCAL_VARIABLES
Any algorithm that adds locals to the method(s) it runs on should have this property.


I_CHANGE_LOCAL_VARIABLES

public static final ModificationProperty I_CHANGE_LOCAL_VARIABLES

I_CHANGE_CLASS_NAMES

public static final ModificationProperty I_CHANGE_CLASS_NAMES

I_CHANGE_CLASS_SCOPES

public static final ModificationProperty I_CHANGE_CLASS_SCOPES

I_CHANGE_CLASS_CONTENTS

public static final ModificationProperty I_CHANGE_CLASS_CONTENTS

I_ADD_CLASSES

public static final ModificationProperty I_ADD_CLASSES

I_REMOVE_CLASSES

public static final ModificationProperty I_REMOVE_CLASSES

I_ADD_METHODS

public static final ModificationProperty I_ADD_METHODS

I_REMOVE_METHODS

public static final ModificationProperty I_REMOVE_METHODS

I_ADD_FIELDS

public static final ModificationProperty I_ADD_FIELDS

I_REMOVE_FIELDS

public static final ModificationProperty I_REMOVE_FIELDS

I_OBFUSCATE_IDENTIFIERS

public static final ModificationProperty I_OBFUSCATE_IDENTIFIERS

THREAD_UNSAFE

public static final ModificationProperty THREAD_UNSAFE

REFLECTION_UNSAFE

public static final ModificationProperty REFLECTION_UNSAFE

PERFORMANCE_DEGRADE_HIGH

public static final ModificationProperty PERFORMANCE_DEGRADE_HIGH

PERFORMANCE_DEGRADE_MED

public static final ModificationProperty PERFORMANCE_DEGRADE_MED

PERFORMANCE_DEGRADE_LOW

public static final ModificationProperty PERFORMANCE_DEGRADE_LOW

PERFORMANCE_DEGRADE_NONE

public static final ModificationProperty PERFORMANCE_DEGRADE_NONE

p1

public static final ModificationProperty p1

p2

public static final ModificationProperty p2

p3

public static final ModificationProperty p3
Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003