Layout Obfuscation Information that is unnecessary to the execution of the program, such as identifier names and comments, is altered. Identifier scrambling is a common obfuscation that has been applied to other languages. These methods affect the data structures used by a program. Data storage obfuscation affects how data is stored in memory. For example a local variable can be converted into a global one.
Data encoding obfuscation affect how the stored data is interpreted.
Data ordering obfuscation changes how data is ordered. The idea here is to disguise the real control flow in a program. Control aggregation obfuscation changes the way in which program statements are grouped together. For example, it is possible to inline procedures. That is, replacing a procedure call with the statements from the called procedure itself.