Irreducibility Obfuscation Algorithm

Author

Edward Carter (ecarter@cs.arizona.edu)

Description

The Irreducibility obfuscation algorithm add conditional branches to a method via opaque predicates so that the control flow graph of the resulting method is irreducible.  For each pair of basic blocks (u,v), where v does not dominate u and u is reachable from v, a conditional branch from u to v is added with some fixed probability.

Example

Consider the following code:

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

After Obfuscation:

???    

Configuration

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

References