Node Splitter Obfuscation Algorithm

Author

Rathna Prabhu Rajendran (prabhu@cs.arizona.edu)

Description

The NodeSplitting obfuscation algorithm obfuscates a class file by splitting a node into two, i.e. some of the fields from the class are moved into a newly created class and all references to those fields in the given class are modified to reflect the changes.

Example

Consider the following code:

class A {
    int i;
    private float f;
    public A(){ }
    public void dummy() {
        i=10;
        f=12.2;
    }
}
    

After Obfuscation:

class A {
    int i;
    A1 next;
    public A() {
        next = new A1();
    }
    public void dummy() {
        i=10;
        next.f = 12.2;
    }
}
class A1 {
    public float f;
    public A1() { }
}
    

Configuration

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

References