Web Semantics: Code Obfuscation

*Hey, that postmodern gobbledygook out of the humanities has got nothing on modern computer science.

http://en.wikipedia.org/wiki/Obfuscated_code

"Obfuscated code is source or machine code that has been made difficult to understand. Programmers may deliberately obfuscate code to conceal its purpose or its logic to prevent tampering, deter reverse engineering or as a puzzle or recreational challenge for readers. It is a form of security through obscurity.

"Programs known as obfuscators transform readable code into obfuscated code using various techniques that might induce anti-debugging, anti-decompilation and anti-disassembly mechanism. Code obfuscation is different in essence from hardware obfuscation, where description and/or structure of a circuit is modified to hide its functionality.

"Contents

1 Overview
2 Application hardening
3 Recreational obfuscation
3.1 Examples
4 Step by step
4.1 Rewrite for as while. Use special values.
4.2 Change iteration into recursion
4.3 Obfuscate constructs and meaningless variable names
4.4 Remove intermediate variables and literals
4.5 Obfuscate names again
4.6 Remove literals
4.7 Remove redundant text
5 Unintentional obfuscation
6 Typography
7 Obfuscation by code morphing
8 Obfuscation in malicious software
9 Obfuscation for VM migration
10 Advantages of obfuscation
10.1 Intellectual property protection
10.2 Reduced security exposure
10.3 Size reduction
10.4 Library linking
11 Disadvantages of obfuscation
11.1 When used alone
11.2 Debugging
11.3 Portability
11.4 Conflicts with Reflection APIs
12 Obfuscating software
13 See also
14 Notes
15 References
16 External links...