Obfuscation is the art of hiding what malware really does. Attackers scramble code, rename things, and pack or encrypt parts so security tools and analysts cannot easily recognize or read it. The behavior stays the same, but the look changes.
If the code keeps changing appearance, signature scans miss it. That lets criminals reuse the same attack across many victims while staying under the radar longer.
Packing or encryption - wraps the payload so scanners see gibberish
Polymorphism - tiny code changes produce new file hashes every run
Control-flow tricks - jumbled logic to confuse analysis tools
String and API hiding - decrypts keywords and function calls at runtime
Anti-analysis checks - exits if it detects a sandbox or debugger
Many unique hashes with near-identical behavior
Processes that unpack in memory and spawn helper children
Late API resolution or reflective loading of DLLs
Short, benign runs in sandboxes but full behavior on real hosts
Use behavioral EDR and memory scanning, not signatures alone
Limit script engines and allow only signed PowerShell where possible
Block macros and common LOLBins abuse paths
Monitor egress traffic for odd protocols or DNS tunneling
Feed new indicators into your SIEM and hunt by TTPs instead of hashes