Convoluting code to make it difficult to understand.
- Makes [[Virus-Antivirus Co-Evolution#Entry Point Scanning|fingerprinting]] more difficult
- Makes reverse engineering by security researchers more difficult
- Typically does not refer to encrypted code, though if the keys are included alongside the code this is technically an extreme type of obfuscation
Can be used for benign code (e.g. to reduce the code size, or for optimisations). For example compiled languages (C++, Rust) output can be disassembled, but the meaning/original source is difficult to de-obfuscate.