Metamorphic code
To avoid being detected by emulation, some viruses rewrite themselves completely each time they are to infect new executables.
Viruses that use this technique are said to be metamorphic. To enable metamorphism, a metamorphic engine is needed. A metamorphic virus is usually very large and complex. For example, W32/Simile consisted of over 14000 lines of Assembly language code, 90% of which is part of the metamorphic engine