It's the stupid ones that, after a while, are easy to spot. Polymorphic viruses are anything but stupid. Polymorphism means the occurrence of different forms, stages or types. And that's what a polymorphic virus does. It changes itself to avoid detection.
Programs possess certain binary characteristics called signatures.
These can be anything from the file header to a particular series of instructions. Early viruses were easily detected by scanning for their unique signatures. In fact, virus scanning software detects viruses by comparing program signatures against a database of known viruses. Polymorphic viruses can change their signature each time they replicate through random number generators, encryption techniques and by changing junk or dummy code embedded inside it. A Bulgarian virus programmer, Dark Avenger, wrote Mutating Engine 0.