Parameter Alias Obfuscation Algorithm

Author

Mary Grabher (mtg@cs.arizona.edu)

Description

Parameter Alias looks at each class and tries to find a (non-initializer, non-abstract, non-native) method that takes some object type as a parameter. It then aliases that parameter within the method using Thread Local Storage (the ThreadLocal class). Every load of the parameter is replaced with ThreadLocal.get(), and every store is replaced with ThreadLocal.set(Object). Before every method invocation within this method, the ThreadLocal value is stored back in the same parameter that it came from. This makes the alias scheme work in recursive methods. Also, since the storage is thread local, it is implcitly thread-safe.

Example

Configuration

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

References