Virüslere yakalanmış bir sistemi iyi- leştirme imkânlarından biri de serum denilen bir işlemin programlanması- dır. Ama böylesi bir program için vi- rüsün önceden keşfedilmiş ve çözüm- lenmiş olması şarttır, Serumun virü- sü ilkin program içeriğinde keşfetme- si zorunlu olduğundan, serum veri kütüklerini tek tek her bit'de tipik vi- rüs özellikleri bakımından yoklamak- tadır. Biyolojide olduğu gibi önce vi- Tüsü tecrit etmek gerekmektedir. En- fekte edildiği konusunda kuşku du- yulmayan bir program enfekte edil- memiş olduğu garantilenmiş kendi ilk metniyle her bir bit'de tek tek karşı- laştırılmaktadır. Burada ortaya çıkan fark, virüs demektir. Bu durumda bir serum-programı test edilecek bütün programları artık bilinen bu virüsle kıyaslamak zorundadır. Kurnaz virüs programcıları serum- programlarının önüne bir engel koy- muşlardır: Bir bilgisayarın serum programları aracılığıyla iyileştirilme- sini zorlaştırmak için, kendi virüsle- rini her yeni kuşakta kendilerini de- ğiştirme yeteneğiyle donatmışlardır. Böylelikle de, ancak iki virüsü ve onun yapısını tanıyan serum- programı bir sonraki kuşaktan hiç bir virüsü saptayamaz duruma gelmek- tedir. Serum programı için daha son- raki kuşaktan virüsler tıpkı kendine büsbütün yabancı virüsler gibi meç- hul kalmaktadır. Fred Cohen “Bilgisayar Virüsleri- Kuram ve Deneyler” başlıklı çalışma- sında taklit bir bilgisayar dili kulla- narak kendi kendini değiştiren virü- sü şöyle betimlemektedir: program evolotionary-viruts. Kopya kuşakları boyunca süren bu mutasyon, bir programın her yeni en- feksiyonunda meydana gelmektedir. Burada virüs yalnızca kendisini ana programa kopya etmekle kalmaz, bu- nun yanı sıra yeni programa rastlan- tısal kökenli komutları da ek olarak