amak amaçlı yazılabilmektedir. Bazı virüs yazıcılar ürettiklerini sanat yapıtı olarak görmekte ve virüs yazmayı bir tür yapıcı hobi olarak tanımlamaktalar. Ek olarak birçok virüs yazıcısı, virüslerin sistemler üzerinde tahrip edici etkiler göstermesinden yana değildir. Çoğu yazıcı saldırdıkları işletim sistemini bir zihin egzersizi ya da çözülmeyi bekleyen bir mantık sorusu olarak görmekte ve antivirüs yazılımlarına karşı oynanan kedi fare kovalamacasının kendilerini cezbettiğini belirtmekteler. Bazı virüsler iyi virüsler olarak addedilir. Bulaştıkları programları güvenlik açısından geliştirilmeye zorlar ya da diğer virüsleri silerler. Bu tür virüsler çok nadirdir ve sistem kaynaklarını kullanır, bulaştıkları sistemlere yanlışlıkla zarar verebilir ve bazen diğer zararlı kodların bulaşması ile virüs taşıyıcı hale gelebilirler.

Zayıf yazılmış bir iyi virüs gene yanlışlıkla zarar veren forma dönüşebilir. Örneğin iyi bir virüs hedef dosyasını yanlış tanımlayabilir ve masum bir sistem dosyasını yanlışlıkla silebilir. Ek olarak, normalde bilgisayar kullanıcısının izni olmadan işlemektedir. Kendini sürekli çoğaltan kodlar ek problemlere de neden olduklarından iyi niyetli bir virüsün, kendisini çoğaltmayan ve problemi halledebilecek geçerli bir programa kıyasla sorunu ne derece çözebileceği kuşku uyandırmaktadır. Kısaca virüs yazarları aleminin genelini belirtecek bir nitelemenin çıkarımı zordur.

Birçok hukuk sahasında herhangi bir bilgisayar zararlısını yazmak suç sayılmaktadır.
Bilgisayar virüsleri diskler ve veri hatları gibi elektronik ortamlarla sınırlanmamıştır. Virüs, bir bilgisayardan diğer bilgisayara olan yoluna basılmış mürekkeple, insan gözündeki ışık ışınlarıyla, optik sinir iletileriyle ve parmak kas kasılmalarıyla devam edebilir. Bir virüs programının kodlarını basarak okuyucularının ilgisine sunan bir bilgisayar meraklıları dergisi geniş bir kesimce kınanmıştır. Aslında, virüs programları hakkında herhangi bir çeşit ‘Nasıl yapılır’ bilgisi yayınlanarak, belirli tip çocuksu zihinlerin virüs fikrine dikkatlerinin böylesine çekilmesi, haklı bir şekilde sorumsuz hareket olarak görülür.
Richard Dawkins - Bir Şeytan'ın Papazı
Bir virüsün kendini çoğaltabilmesi için virüsün yürütülmeye ve hafızaya yazılmaya izinli olması gerekir. Bundan ötürü birçok virüs kendilerini geçerli programların yürütülebilir dosyalarına tuttururlar. Eğer bir kullanıcı virüs bulaşmış programı başlatmaya kalkarsa, ilk olarak virüsün kodu çalıştırılır. Virüsler yürütüldüklerinde gösterdikleri davranışlara göre iki çeşide ayrılırlar. Yerleşik olmayan virüsler hemen tutunacakları başka konaklar ararlar, bu hedeflere bulaşır ve nihayetinde bulaştıkları programa kontrolü bırakırlar. Yerleşik virüsler yürütülmeye başladıklarında konak aramazlar. Bunun yerine yürütümle birlikte kendilerini hafızaya yükler ve kontrolü konak programa bırakırlar. Bu virüsler arka planda etkin kalarak, virüs bulaşmış program dosyalarına erişen her programın dosyalarına ya da işletim sisteminin kendisine bulaşırlar.

Yerleşik olmayan virüslerin keşfedici modül ile çoğaltıcı modülden oluştukları düşünülebilir. Keşfedici modül virüsün bulaşması için kullanılacak yeni dosyalar aramakla yükümlüdür. Keşfedici modülün karşılaştığı her yürütülebilir dosyaya çoğaltıcı modül çağrılmak suretiyle virüs bulaştırılır.

Basit virüsler için çoğaltıcının görevleri şunlardır:

Yerleşik virüsler yerleşik olmayan virüslerdeki örneğine benzer bir çoğaltıcı modül içerirler. Ancak yerleşik virüslerde çoğaltıcı modülü çağıran keşfedici modül bulunmamaktadır. Onun yerine, virüs yürütüldüğü vakit çoğaltıcı modül hafızaya yüklenir ve böylece işletim sistemi belirli tip bir görevi her seferinde uygularken çoğaltıcı modülün de yürütülmesi sağlanır. Örneğin işletim sistemi bir dosyayı her seferinde yürütürken çoğaltıcı modül çağrılabilir. Bu durumda virüs bilgisayarda yürütülmekte olan tüm uygun programlara bulaşabilir.

Yerleşik virüsler, bazen hızlı bulaşıcılar ve yavaş bulaşıcılar olmak üzere alt kategorileri ayrılabilirler. Hızlı bulaşıcılar olabildiğince çok dosyayı infekte etmeye çalışırlar. Örneğin, hızlı bulaşıcı ulaşılan her potansiyel konak dosyasına virüs bulaştırabilir. Bu durum antivirüs programları için özel bir problem oluşturmaktadır, çünkü virüs tarayıcısı sistem genelinde tarama yaptığında sistemdeki tüm potansiyel konak dosyalarına erişecektir. Eğer virüs tarayıcısı sistem hafızasında virüsün bulunduğunu tespit edemez ise virüs, virüs tarayıcısını arkadan takip ederek tarama için erişilen tüm dosyalara bulaşacaktır. Hızlı bulaşıcılar, sisteme yüksek hızda yayılmalarına bel bağlarlar. Bu metotun sakıncası virüsün birçok dosyaya bulaşması ve kendisinin tespitini bir anlamda kolaylaştırmasıdır. Çünkü sistem hafızasını işgal eden virüsler giderek makineyi yavaşlatacak ve şüphe uyandıran eylemler gerçekleştirerek antiviruüs yazılımları tarafından fark edileceklerdir. Yavaş bulaşıcılar ise konak dosyalarını nadiren infekte edecek şekilde tasarlanmışlardır. Örneğin, bazı yavaş bulaşıcılar sadece kendilerini kopyaladıklarında dosyalara tutunurlar. Yavaş bulaşıcılar aktivitelerini sınırlayarak tespit edilmekten sakınmaya çalışırlar. Bilgisayarı fark edilebilir şekilde yavaşlatmaları olası değildir ve şüphe uyandıran davranışları tespit eden antivirüs yazılımlarını tetiklememek için ellerinden geleni artlarına koymazlar. Yavaş bulaşma ile tüm sisteme yayılma yaklaşımı bu tür virüslerin amaçlarına ulaşmalarına imkân vermemiştir.

Kullanıcılar tarafından tespit edilmeyi güçleştirmek adına virüsler bazı aldatmacalar kullanmaktadır. Özellikle MS-DOS platformundaki bazı eski virüsler, konak dosyaya bulaşıp içeriği değiştirmelerine rağmen, "son değiştirme " tarihinin özellikle değişmeden kalmasını sağlarlar.

Ancak bu yaklaşım ile antivirüs yazılımlarını aldatamazlar.

Bazı virüsler, ulaştıkları dosyaların büyüklüklerini değiştirmeden ve dosyaya zarar vermeden bulaşırlar. Bunu yürütülebilir dosyadaki kullanılmayan alanların üzerine yazarak gerçekleştirirler. Bu türden virüsler boşluk virüsleri olarak adlandırılırlar. Örneğin bir zamanlar büyük tahribata neden olmuş Chernobyl virüsü taşınabilir yürütülebilir dosyaları etkiler çünkü bu tür dosyalarda çok sayıda boşluk bulunmaktadır. 1 KB boyutundaki virüs, dosyalara bulaştığında dosya büyüklükleri değişmeyecektir.

Bir kısım virüsler antivirüs programları kendilerini tespit etmeden evvel bazı antivirüs program görevlerini sonlandırarak tespiti engellemeye çalışırlar.

Bilgisayarlar ve işletim sistemleri gelişip karmaşıklaştıkça eski tip saklanma yöntemlerinin güncellenmeleri ya da yenileriyle değiştirilmeleri gerektiği açıktır.

Bir virüs yayılıma devam edebilmek için mutlaka bir konağa tutunmalıdır. Bazı durumlarda konak programına bulaşmak iyi bir fikir değildir. Örneğin bazı antivirüs programları bütünlük kontrolü yaparak kendi kodlarını incelerler. Dolayısıyla bu türden programlara tutunmak virüsün açığa çıkmasına neden olacaktır. Bundan ötürü bazı virüsler, antivirüs programlarının parçaları oldukları bilinen bir kısım programlara tutunmayacak şekilde tasarlanırlar. Virüslerin sakındıkları bir başka konak türü ise olta (bait) dosyalarıdır. Olta dosyaları, antivirüs programları ya da antivirüs uzmanları tarafından virüsün bulaşmasına yönelik özel olarak hazırlanan dosyalardır. Bu dosyaların hepsi de virüsleri tespit etmeye yönelik olup çeşitli amaçlar için üretilmektedirler;


Olta dosyaları, virüsleri tespit etmekte ya da tespit etmeyi kolaylaştırmakta kullanıldıklarından, bir virüs bu türden dosyalara bulaşmayarak kendine fayda sağlayabilir. Virüs bunu anlamsız komutlar içeren küçük program dosyaları gibi, şüpheli görünen programlardan uzak durarak gerçekleştirir.

Virüsler için oltalanmadan sakınmanın bir diğer yolu da seyrek bulaşmadır. Bazen seyrek bulaştırıcılar, diğer şartlar altında tutunmaya uygun bir aday olabilecek konak dosyasına tutunmazlar. Örneğin bir virüs herhangi bir konak dosyasına bulaşıp bulaşmamaya rastgele bir şekilde karar verebilir ya da konak dosyalarına haftanın belirli günlerinde bulaşmayı tercih edebilir.

Bazı virüsler, antivirüslerin işletim sistemine aktardığı bazı istekleri durdurarak antivirüs yazılımını kandırmaya çalışırlar. Bir virüs, antivirüs yazılımının işletim sistemine ilettiği "dosyayı okuma isteğinin" doğru hedefe ulaşmasını engelleyebilir ve hatta isteği kendine yönlendirmek suretiyle antivirüsten saklanmayı başarabilir. Virüs, daha sonra aynı dosyanın temiz bir versiyonunu antivirüse sunarak dosyanın "temiz gibiymiş" görünmesini sağlar. Modern antivirüs yazılımları virüslerin bu türden gizlenme tekniklerine karşı koymaya çalışmaktadır. Kaçaklığı engellemenin tek yolu sistemi temiz olduğu bilinen bir ortamdan önyüklemektir.

Birçok antivirüs yazılımı, sıradan programların dosyalarını virüs imzalarını kontrol ederek taramakta ve muhtemel virüsleri bulmaya çalışmaktadır. Bir virüs imzası belirli tip virüsü ya da virüs ailesini belirten özel byte numunesidir. Eğer virüs tarayıcısı incelenen dosyalar içinde böyle bir numune ile karşılaşır ise kullanıcıyı virüs hakkında bilgilendirir. Kullanıcı bu durumda dosyayı silebilir ya da virüsten arındırabilir. Bazı virüsler, virüs imzaları ile tespit edilmeyi güçleştirecek ya da imkânsız hale getirecek teknikler kullanır. Bu türden virüsler her bulaşma esnasında kodlarını değiştirmektedir.Dolayısıyla her konak virüsün farklı bir versiyonunu bünyesinde bulundurmaktadır.

Geçmişte virüsler kendilerini basit şekillerde değiştirebiliyorlardı. Örneğin virüsler, kaynak kodlarında yer alan ve görevleri benzer altprogram ünitelerini değiş tokuş etmekteydi. 2+2 yapısındaki bir virüs takas sonunda 1+3 forumuna dönerken işlevinde herhangi bir değişiklik olmuyordu. Günümüzde bu durum gelişmiş virüs tarayıcılar için bir problem oluşturmuyor.

Daha gelişmiş bir yöntem ise virüsü basit şifreleme yöntemleri ile saklamaktı. Bu durumda virüs, ufak bir şifre çözücü modül ile virüs kodunun şifrelenmiş bir kopyasından oluşmaktaydı. Her dosya bulaşmasında virüs faklı bir an