Application obfuscation

Definition
Application obfuscation is

"a set of technologies used to protect an application and its embedded intellectual property (IP) from application-level intrusions, reverse engineering and hacking attempts. Application obfuscation tools protect the application code as the increasing use of intermediate language representations (such as Java and .NET) enables hackers to easily reverse-engineer IP embedded in software."