Genelde kendi yazdıkların.. Virüs tarama programlarının iki çeşit taraması vardır. İlki için şöyle bir örnek verelim;
Bir virüs yazıldı, virüs taramacılar bunun bir örneğini ele geçirdiler. Gördüler ki virüs, ismi cismi değişse de her zaman için mesela
- Bütün yerel html dosyalarını bul.
- Bunlara scvhost'u değiştirecek şekilde kod yaz
.. şeklinde bir komut dizisi oluyor. (Ramnit trojanı)
Bu kısımdan en önemli parçayı alırlar, ve de tarama yaparken bütün dosyalarda "virüs imzası" dediğimiz bu kısmı ararlar. Bulurlarsa "Bu ramnit trojanıdır" diye işaretler ve virüsü silerler.
İkinci olarak da heuristic inceleme vardır. Şüpheli kabul edilen davranışlar gösteren programlarda, bu şüpheli davranışlara göre puan verirler. Mesela virüs tarama der ki; "Bu program low level keyboard hook atarak, klavyeden girilen bütün tuşları alıyor. Ayrıca bu program mail atan kodlara sahip. Son olarak da bu program ekranda hiç bir şey göstermiyor. Kullanıcıyı bunun büyük ihtimalle Trojan.Keylogger olduğuna dair uyarayım."
İlk kısmı geçmek kolaydır. Kodu kendin yazarsan, 90% senin programın herhangi bir virüsten farklı bir kod dizilimine sahip olacaktır. İkincisinden kaçınmak içinse şüpheli davranışları o kadar şüpheli olmayan davranışlarla değiştirebilirsin, bu şüpheli davranışları ayrı dll'ler içine atarak seyreltebilirsin. Son olarak da kodu şifreleyip, virüs tarama programının anlamamasını sağlayabilirsin, bu forumda "undetected" bölümünde epeyce kaynak olmalı bu konuda.