Add Bogus Fields Obfuscation Algorithm

Authors

Ginger Myles (mylesg@cs.arizona.edu)
Miriam Miklofsky (miriamm@cs.arizona.edu)

Description

This algorithm obfuscates a class. The obfuscation is done by inserting a bogus field into a class and then making assignments to that field in specific locations throughout the code. The specific locations are determined by the random selection of a "sister" field. Wherever assignments are made to the sister field an assignment to the bogus field also occurs.

To obfuscate the code a new field in added to the class and then assignments are made to this field. The way the obfuscation works is that a "sister" field is identified which is used to insert an assignment to the new field. The sister field is chosen randomly. Everytime there is an assignment to the sister field an assignment to the new field is inserted into the code.

        newFieldName = "sm$" + i
        sisterFieldIndex = randomNumberGen() % fields.length
        insert newFieldName in the class
        for (each method in class){
           search instruction list for assignment to sisterField
           insert assignment to newField
        }
    

Example

Configuration

There are no extra configuration parameters necessary to run this obfuscator.

References