Macro.Visio.Unstable

Jest to drugi znany makrowirus Visio, kt贸ry jednak pretenduje do bycia najlepszym w rodzinie "Macro.Visio". Wirus ten jest znacznie bardziej skomplikowany ni偶 jego poprzednik (Radiant) - u偶ywa szyfrowania i specjalnych trik贸w, w celu ukrycia swojego istnienia w zainfekowanych plikach.

Wirus infekuje dokumenty i szablony Visio podczas otwierania zara偶onego dokumentu. Zlicza wszystkie otwarte dokumenty i szablony, infekuje je poprzez wkopiowanie swojego cia艂a do ich wn臋trza. Aby zaznaczy膰 zara偶one pliki wirus dopisuje do ich opis贸w "Visio2k.Unstable". plik贸w w ten spos贸b oznaczonych wirus nie infekuje.

W celu ukrycia si臋 wirus zamyka wszystkie otwarte okna edytora VBA, zmienia menu i standardowy pasek Edytora Visual Basic na nieaktywny. Aby zabezpieczy膰 si臋 przed pr贸b膮 edytowania przez u偶ytkownika makra z zara偶onego dokumentu wirus powoduje, 偶e programista zobaczy edytor z nieaktywnymi menu, paskami narz臋dzi i oknami potomnymi.

31 dnia ka偶edego miesi膮ca (o ile miesi膮c ma tyle dni) wirus wy艣wietla wiadomo艣膰:

Visio2000.Unstable
Unstable, it's hard to be the one who's strong
Who's always got a shoulder to cry on
Who's got a shoulder for me?
W module "ThisDocument", wirus zawiera trzy procedury: Document_DocumentOpened(), Unstable()" i "ci()". Jednak w kodzie zara偶onego dokumentu druga z procedur jest nieczytelna, poniewa偶 jest zaszyfrowana. Wirus deszyfruje t膮 procedur臋 tu偶 przed jej wywo艂aniem.