A víruskeresés legérdekesebb területe a heurisztikus analizis. Feladata a program kódját elemezni, és a gyanús utasításokat/műveleteket kiemelni. A profibb termékek ehhez egy szoftveres processzoremulátort használnak, mely végre tudja hajtani például a vírus dekóderét is, így meg tudja szemlélni a vírus kódolt részét. Természetesen nagyon fontos, hogy a vírus ne hajthasson végre emuláció közben a valós rendszerre kiható destruktív műveletet, és semmiképpen ne tudjon kiszabadulni az ellenőrzött környezetből.
A víruskereső programok által leggyakrabban figyelt szerkezetekre példák: önkódoló rutin, rezidenssé válás, a program újraindítása (mikor a vírus lefutott, és a tényleges programot kell elindítani), futtatható fájlok keresése, nem dokumentált rendszerhívások használata, a kód ofszetjének dinamikus megállapítása.
A különböző platformokra készült vírusokhoz különböző emuláció jár, így például van olyan termék, amely a makrovírusok elemzésére képes WordBasic emulátort tartalmaz. A gyanús momentumok a különböző WordBasic függvények lehetnek, mint például a MacroCopy , mellyel makrókat másolhatunk megadott sablonokba .
Ha kiemeltük a gyanús jellemzőket, akkor ezeknek egy súlyozott összegét szokás venni, mely ha eléri a beállított riadószintet, akkor a víruskereső program gyanúsnak, vagy ismeretlen vírussal fertőzöttnek jelezheti az állományt. Némely program (AVP, DrWeb, UVE, stb.) még azt is kiírja, hogy milyen tulajdonságokkal rendelkezik a feltételezett vírus (pl. COM és EXE fertőző, rezidens, önmagát titkosítja).
Hogy milyen súlyokkal kell venni a különböző jellemzőket, azt az antivírusprogramok készítői kisérletezéssel állítják be. Érdekes alkalmazás erre a célra egy neurális hálózatot használni, melyet például úgy taníthatunk be, hogy a vírusokra 1-et, a legális programokra -1-et adjon a kimenetén. Létezik is legalább egy olyan víruskereső (HMVS : Heuristic Macro Virus Scanner), mely ezt a technikát alkalmazza.