In software development, obfuscation is the purposeful concealment or distortion of computer code to protect it from human and machine tampering. Obfuscated programs are fully functional but hard to detect, stop, or tinker with.
Real obfuscation use cases
- Hiding critical software parts (security through obscurity)
- Protecting programs from tampering by hackers
- Protecting proprietary code from easy reverse engineering
- Concealing malicious code to prevent security specialists from easily countering it
- Recreational deobfuscation puzzles for programmers