TY - GEN
T1 - Breaking abstractions and unstructuring data structures
AU - Collberg, Christian
AU - Thomborson, Clark
AU - Low, Douglas
PY - 1998
Y1 - 1998
N2 - To ensure platform independence, mobile programs are distributed in forms that are isomorphic to the original source code. Such codes are easy to decompile, and hence they increase the risk of malicious reverse engineering attacks. Code obfuscation is one of several techniques which has been proposed to alleviate this situation. An obfuscator is a tool which - through the application of code transformations - converts a program into an equivalent one that is more difficult to reverse engineer. In a previous paper [5] we have described the design of a control flow obfuscator for Java. In this paper we extend the design with transformations that obfuscate data structures and abstractions. In particular, we show how to obfuscate classes, arrays, procedural abstractions and built-in data types like strings, integers, and booleans.
AB - To ensure platform independence, mobile programs are distributed in forms that are isomorphic to the original source code. Such codes are easy to decompile, and hence they increase the risk of malicious reverse engineering attacks. Code obfuscation is one of several techniques which has been proposed to alleviate this situation. An obfuscator is a tool which - through the application of code transformations - converts a program into an equivalent one that is more difficult to reverse engineer. In a previous paper [5] we have described the design of a control flow obfuscator for Java. In this paper we extend the design with transformations that obfuscate data structures and abstractions. In particular, we show how to obfuscate classes, arrays, procedural abstractions and built-in data types like strings, integers, and booleans.
UR - http://www.scopus.com/inward/record.url?scp=0031620963&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0031620963&partnerID=8YFLogxK
U2 - 10.1109/ICCL.1998.674154
DO - 10.1109/ICCL.1998.674154
M3 - Conference contribution
AN - SCOPUS:0031620963
SN - 0818684542
T3 - Proceedings of the IEEE International Conference on Computer Languages
SP - 28
EP - 38
BT - Proceedings of the IEEE International Conference on Computer Languages
A2 - Anon, null
T2 - Proceedings of the 1998 International Conference on Computer Languages
Y2 - 14 May 1998 through 16 May 1998
ER -