Es gibt eigentlich zwei Arten von Rootkits.
Die einen tauschen bestimmte Systemdateien aus, um sich so zu tarnen. Die lassen sich beispielsweise durch einen Prüfsummenabgleich aufspüren. (Dazu braucht man allerdings natürlich Prüfsummen von allen Originaldateien.)
Einfaches Beispiel, das mir gerade einfällt:
Ein rootkit könnte z. B. die cmd.exe oder eine Explorer-dll austauschen, so dass, wenn der Benutzer "dir" eintippt, oder ein Verzeichnis im Explorer anschaut, das rootkit eiinfach nicht angezeigt wird.
Die andere Art von Rootkits klinkt sich weit tiefer, auf Treiber- oder Kernelebene, ins System ein. Dadurch können dann z. B. sogar unveränderte Prüfsummen vorgegaukelt werden (solange man nicht von einem sauberen System aus prüft).
Ein normaler Virenscanner kann ein rootkit, wenn überhaupt, also nur vor der Ausführung erkennen. Ein kompromittiertes System wird als sauber angezeigt, da das Betriebssystem falsche Informationen an den Virenscanner weiterleitet (und wenn der Virenscanner nicht "sieht", dass da eine "rootkit.exe" in C:\windows liegt, wie soll er die dann prüfen?)
Da rootkits vor Allem im Windows-Bereich noch sehr selten anzutreffen sind, gehe ich auch davon aus, dass die allerwenigsten (wenn überhaupt welche) Virenscanner überhaupt versuchen, rootkits zu finden.
Das Problem ist ein bisschen wie bei Heuristik-Suchen, nur noch extremer. Da man das Rootkit an sich nicht sieht, muss man versuchen aus bestimmten Unterschieden zu einem "typischen" sauberen System, Rückschlüsse auf möglicherweise vorhandene rootkits ziehen. Wie schwer das ist, und wie viele Falschmeldungen dabei kommen würden, kann sich wohl jeder selbst ausmalen.
Das zeigt mal wieder schön, dass man sich auf einen Virenscanner eben nicht verlassen kann. Auch wenn das "besser als ncihts"-Argument einen wahren Kern hat, bedeutet ein vom Virenscanner ausgegebenes "Nichts gefunden" noch lange nicht, dass auch nichts da ist.