The key code obfuscation techniques are the following:
- Rename code obfuscation
- Packing
- Instruction pattern/flow transformation
- Dummy code insertion
- Metadata and unused code removal
- Opaque predicate insertion
- Anti-debug obfuscation
- Anti-tamper obfuscation
- Code obfuscation through string encryption
- Control flow code obfuscation
- Code transposition obfuscation
- Code virtualization
- Arithmetic obfuscation
- Custom encoding