ahtar ile şifreleniyor olsa da virüsün sürekli sabit kalacak tek bölümü, virüsün son bölümüne iliştirilen çözücü modül olacaktır. Bu durumda virüs tarayıcı virüs imzalarını kullanarak virüsü tespit edemeyecektir, ama sabit olan çözücü bölüm tespit edilerek virüsü dolaylı yollar ile bulmanın imkânı vardır.

Genel olarak virüslerin uyguladıkları çözücü teknikleri basitti ve büyük çoğunlukla her byte'ı ana virüs dosyasında saklanan rastgele hale getirilmiş anahtar ve Xor takısı ile birleştirmek suretiyle elde ediliyordu. Şifreleme ve çözme düzenlerinin aynı olmasından ötürü Xor uygulamalarının kullanılması virüse ek avantaj sağlıyordu. 

Çokşekilli kodlar, tarayıcılara yönelik ciddi tehdit arz eden ilk teknikti. Şifrelenmiş virüslere benzer şekilde çokşekilli virüsler de dosyalara şifrelenmiş kopyaları ile bulaşmakta idi. Bununla birlikte şifre çözücü modül de her dosya bulaşmasında değişmekteydi. Dolayısıyla iyi yazılmış çokşekilli bir virüs her bulaşmada sabit kalacak hiçbir parçaya sahip değildi ve bu da virüs imzalarını kullanarak virüsü tespit etmeyi imkânsız hale getiriyordu. Antivirüs yazılımları virüsü, öykünücü (emulator) vasıtasıyla çözerek ya da şifrelenmiş virüs gövdesinin istatistiki model analizini yaparak tespit edebiliyorlardı. Çokşekilli koda sahip olabilmek için virüs, şifrelenmiş gövdesi içerisinde çokşekilli motora (değiştirme motoru ya da değişim motoru) sahip olmalıdır.

Bazı virüsler çokşekilli kodları virüsün değişim hızını arttırmakta kullanmaktalar. Örneğin bir virüs zaman içinde yavaş biçimde değişim gösterecek şekilde programlanabilir ya da başka virüs kopyaları bulaşmış dosyalara tutunmaktan kendini alıkoyabilir. Bu türden yavaş çokşekilli virüslerin üstünlüğü, antivirüs uzmanlarının bu türden virüslere ait temsil numunelerini elde etmekte zorlanmalarıdır. Çünkü belirli bir zaman sürecinde olta dosyalarına sadece benzer ya da aynı tip virüs versiyonları bulaşacaktır. Bu durum açıkça gösteriyor ki bu türden virüslerin virüs tarayıcıları ile tespiti güvenilir değildir ve sonuç olarak virüsün bazı örneklerinin tespit edilmekten kaçabildiği açıkça belli olmaktadır.

Öykünücüler (emulatorler) vasıtasıyla tespit edilmekten kurtulabilmek için her yeni yürütülebilir dosyaya bulaşmadan önce kendilerini tamamıyla yeniden yazan virüslerdir. Başkalaşım geçirebilmeleri için bu virüslerin başkalaşım motoru kullanmaları gerekir. Bir başkalaşım motoru genelde çok büyüktür ve karmaşıktır. Örneğin W32/Simile 14000 satır çevirici dili içerir ve %90'ı başkalaşım motoruna aittir.

Biyolojik virüsler ile bilgisayar virüslerinin birçok yönden benzeştikleri bilindiktir. Bir topluluk içerisinde genetik çeşitlilik ne kadar fazla ise, herhangi bir hastalık virüsünün o canlı topluluğunu yok etmesi o derece zorlaşmaktadır. Aynı şekilde bir ağ üzerindeki yazılım sistemlerinin çeşitliliği, virüslerin tahrip ediciliğini sınırlamaktadır.

Microsoft'un masaüstü işletim sistemleri ve ofis yazılım paketleri pazarında üstünlük sağladığı 1990'larda bu durum özel bir ilgi yarattı. Microsoft yazılımları kullanıcıları (özellikle Microsoft Outlook ve Internet Explorer gibi ağ yazılımları kullanıcıları) virüslerin yayılımı karşısında savunmasızdırlar. Microsoft yazılımları, şirketin masaüstü işletim sistemlerindeki nicelik olarak üstünlüğünden ötürü birçok virüs yazıcısının hedefidir ve virüs yazıcılar tarafından suistimal edilen birçok hata (bug) ve açıkları bünyelerinde bulundurduklarından sık sık eleştiri almaktadırlar. Gömülü (entegre) yazılımlar, dosya sistemlerine erişim imkânı tanıyan betik dillerini içerir uygulamalar (örneğin VBScript ve ağ oluşturma uygulamaları ) da saldırıya açıktır.

Her ne kadar Windows virüs yazıcılar için en gözde işletim sistemi olsa da bazı virüsler diğer platformlarda da gözlenmektedir. Üçüncü parti yazılımları yürüten herhangi bir işletim sisteminde teorik olarak virüsler çalışabilir. Bazı işletim sistemleri diğerlerine nispeten daha az güvenlidir. Unix temelli işletim sistemleri (ve Windows NT temelli platformalar) kullanıcıların yürütülebilir uygulamaları sadece kendilerine ait sınırlandırılmış alanda çalıştırmalarına izin verirler.

2006 yılı olarak Unix tabanlı işletim sistemlerinden biri olan Mac OS X'i hedef alan açık suistimali (exploit) oldukça azdır. Bilinen güvenlik açıkları ise solucanların ve truva atlarının suistimal ettikleri açık sınıflandırmalarına dahil edilmektedirler. Apple'in Mac OS Classic olarak bilinen eski işletim sistemlerine yönelik virüslerin sayısı, bilgi kaynaklarına göre değişiklik arz etmekte. Apple sadece 4, bağımsız kaynaklar ise 63 kadar virüsün işletim sistemine bulaşabileceğini belirtmekte. Kesin olarak söylenebilir ki Unix tabanlı olmasından ötürü Mac Os işletim sistemlerinin güvenlik açıklarından suistimal edilmeleri diğer işletim sistemlerine nispeten daha güçtür. Macintosh bilgisayarların sayıca az olmasından ötürü Mac virüsleri sadece bir kısım bilgisayarı etkileyebilir ki bu durum virüs yazıcılarını pek cezbetmemektedir. Virüslerden etkilenme nitelikleri, çoğu kez Apple ve Microsoft arasındaki karşılaştırmaların temelini oluşturmaktadır.

Windows ve Unix benzer betik yeteneklerine sahiptir, ancak Unix normal kullanıcıların işletim sistemi ortamına erişimini engelleyerek olası değiştirmelerin önüne geçerken, Windows bunu yapmaz. 1997'de Bliss olarak bilinen Linux'a yönelik virüs ortaya çıktığında, önde gelen antivirüs şirketleri Unix benzeri işletim sistemlerinin (Linux da Unix tabanlıdır) Windows gibi virüslerin esareti altına girebileceği öngörüsünde bulundu. Bliss, Unix sistemlere yönelik tipik bir virüstür. Bliss, kullanıcının "kendisini" çalıştırması ile aktif hale gelir ve sadece kullanıcının erişim haklarının olduğu alanları (ya da programları) enfekte eder. Windows kullanıcılarının aksine birçok Unix kullanıcısı, program yüklemek ve yazılım ayarlarını yapmak gibi durumlar haricinde yönetici hesabıyla oturum açmazlar, dolayısıyla kullanıcı virüsü çalıştırsa bile virüs işletim sistemi dosyalarına bulaşamayacağı için sisteme zarar veremez. Bliss virüsü hiçbir zaman çok yaygınlaşmadı ve daha çok araştırma merakı aracı olarak kaldı. Daha sonra kaynak kodu, yaratıcısı tarafından araştırmacıların nasıl çalıştığını inceleyebilmeleri adına Usenete postalandı.

Yazılımlar sistem kaynaklarının izinsiz kullanımını engelleyecek güvenlik özellikleri ile tasarlandıklarından, birçok virüs sistem ya da uygulamalardaki yazılım hatalarını (bug) suistimal ederek yayılırlar. Yazılımlarda çok sayıda hata (bug) yaratan yazılım geliştirme stratejilerinde diretmek, aynı zamanda birçok potansiyel suistimalin de temel kaynağı olacaktır.

Microsoft ve patentli yazılım üreten şirketlerin tercih ettikleri kapalı kaynak yazılım geliştirme süreci birçokları tarafından güvenlik zafiyetinin temel kaynağı olarak görülür. Açık kaynak yazılımlar (GNU Derneği Yazılımları vb.) kullanıcıların uygulama kodlarını incelemesine olanak tanır ve güvenlik problemlerini çözmek için sadece tek bir kuruma bağlı kalınmak zorunluluğunu ortadan kaldırır.

Diğer taraftan bazıları açık kaynak yazılım geliştirmenin, virüs yazıcılarının kullanabilecekleri potansiyel güvenlik problemlerini açığa çıkardığını ve dolayısıyla suistimallerin görülme sıklığının artacağını iddia etmekte. Bu kişiler, ayrıca, Microsoft gibi popüler kapalı kaynak yazılımların çok fazla kullanıcısı olmasından ötürü süistimal edildiklerini ve yazılımın çokça kullanılması nedeniyle suistimal etkisinin geniş alanlara yayılmasının doğal karşılanması gerektiğini iddia etmekteler.

Örnek bir virüsün kodu(Kesin ölüm virüsü):del C:/WINDOWS/system/MOUSE.DRV
del C:/WINDOWS/system/KEYBOARD.DRV
del c:\WINDOWS\system32\drivers\cdrom
shutdown -s

Antivirüs yazılımlarının virüsleri tespit etmekte kullandığı iki metot bulunmaktadır. İlki ve en yaygın kullanılanı, virüs imza tanımlarını kullanmaktır. Bu yöntemin mahzuru, kullanıcının virüs imza listelerinin sadece tespit edilmiş virüslere ait imzaları içermesinden ötürü yeni türeyen tehditlere karşı savunmasız kalmasıdır. İkinci method ise virüslerin genel davranışlarına odaklanarak tespiti gerçekleştiren buluşsal algoritmaları kullanmaktır. Bu method sayesinde antivirüs şirketlerinin henüz tespit edemedikleri virüslerin sisteminizde var olduklarını bulabilirsiniz.

Birçok kullanıcı virüslere ait yürütülebilir dosyalar bilgisayara indirilmesi durumunda tespiti gerçekleştirecek ve dosyaları sistemden temizleyebilecek antivirüs programları kullanmaktadır. Antivirüs yazılımları bilgisayar hafızasını (RAM ve önyükleme sektörleri), sabit ya da çıkarılabilir sürücülerin (sabit diskler ve disketler) dosyalarını inceleyerek ve virüs imzaları veritabanı ile karşılaştırarak çalışırlar. Bazı antivirüs yazılımları aynı usul ile dosyalar açılırken hatta eposta alıp gönderirken tarama yapabilmektedir. Bu uygulamaya "on access" tarama denilmektedir. Antivirüs yazılımı, konak programların virüsleri yayma zaafiyetlerini (açıklarını) düzeltmezler. Bunu gerçekleştirecek birkaç adım atıldı ancak bu türden antivirüs çözümlerini benimsemek konak yazılımların garantilerini geçersiz kılabilmektedir. Dolayısıyla kullanıcılar sık sık güncelleme yaparak yazılımlara ait güvenlik açıklarını yamamalıdır.

Kişi, ek olarak önemli verilerin ve hatta işletim sisteminin düzenli yedeklerini alarak virüslerin neden olacakları muhtemel zararları engelleyebilir. Yedeklerin sisteme sabit bağlanmamış, sadece okunabilir ya da erişim engelli (faklı dosya sistemleri ile formatlanmış) ortamlarda saklanması ise çok önemlidir. Bu yol ile, eğer virüs nedeniyle veri kaybı yaşanırsa en son alınmış yedek kullanılarak zarar telafi edilir. Aynı şekilde bir çalışan disk (livecd) işletim sistemi, asıl işletim sistemi kullanılamaz hale geldiğinde bilgisayarı açmak için kullanılabilir. Bir başka yöntem ise farklı işletim sistemlerine ait yedekleri farklı dosya sistemleri üzerinde saklamak. Bir virüsün tüm dosya sistemlerini etkilemesi pek mümkün değildir. Bu nedenle alınan veri yedeklerinin farklı tipte dosya sistemlerine aktarılması uygundur. Örne