Code obfuscation deliberately makes the code more difficult to understand. This involves renaming variables, methods etc. Altering the code structure in ways that do not affect functionality but make reverse engineering much harder. Attacker use reverse engineering to find vulnerabilities that can be exploited or remove or bypass security protections such as encryption or anti tamper mechanisms.