Każdy porządnie napisany trojan powinien posiadać szereg mechanizmów, które sprawdzają czy został uruchomiony w wirtualnej maszynie. Po co? A po to, żeby wszelkie możliwe próby podglądania co robi trojan, w jaki sposób się komunikuje, które pliki modyfikuje, spełzły na niczym. Jakakolwiek próba podpinania się pod złośliwe oprogramowanie debugerami, także powinna zostać wykryta, a trojan powinien przestawać działać (najlepiej aby jeszcze usuwał swoją wersję). Metod jest wiele i różnych, czasami mniej lub bardziej skutecznych. W skróconej analizie (pełna wersja wymaga subskrypcji) rodziny aplikacji od grupy Rustock, możemy przeczytać, że ostatnio modną metodą w zakresie wykrywania popularnego pakietu do wirtualnych systemów VMWare, jest odczytywanie ID szyny PCI. Na podstawie uzyskanych wartości rozpoznawane jest czy aplikacja jest uruchamiana w środowisku wirtualnym czy prawdziwym gdyż w systemie wirtualnym pobrane ID ma inne wartości. Co aplikacja to metoda :] Sposobów jest wiele i różnych, ważne aby były skuteczne. Oczywiście im więcej metod połączymy w jedną całość, tym większa szansa na dłuższe przeżycie w realnym świecie naszej złośliwej aplikacji.
Źródło: http://sunbeltblog.blogspot.com/2009/07/more-on-rustock.html