A polimorf vírusoknak nincs szekvenciája, így a víruskeresőnek algoritmikus keresést kell megvalósítania. A két fő megközelítés szerint keresni lehet vagy a dekódert, vagy a kódolt részt.
Ha a dekóderre keresünk, akkor nagyon körültekintőnek kell lennünk, és fel kell készülnünk minden lehetséges utasításra és dekódolási algoritmusra. Ha itt hibázunk, akkor víruskeresőnk bizonyos fájlokat nem fog felismerni, azaz hamis negatív eredményt fog szolgáltatni. A vírus testének visszakódolásához elemeznünk kell az utasításokat, és ki kell nyernünk belőlük azokat az adatokat, melyek az alkalmazott kódolást, és ennek paramétereit határozzák meg.
A kódolt részre is lehet keresni, ezt kriptoanalízisnek hívják. Ha mondjuk a vírus egy bájtos xor kódolással van titkosítva, akkor beolvassuk a feltételezett első bájtot, és ezt xoroljuk a vírus kódolatlan első bájtjával (ez ismert, hiszen tudjuk, hogy mit keresünk). Ekkor megkaptuk a xor értéket, amivel a vírus titkosítva van, most már csak azt kell ellenőrizni, hogy tényleg itt van-e a vírus. Ha ezzel az értékkel végigxoroljuk a következő bájtokat, és a kódolatlan vírus bájtjait kapjuk, akkor vírust találtunk. A módszer bonyolultabb kódolásra bonyolultabb, de ezért általában megoldható. A gondok ott kezdődnek, amikor egymás után két kódolást alkalmaz a vírus.