Bližší popis klíče v regitru Windows, který bývá často zneužit viry a malware.
Tento článek pojednává o jednom jediném klíči v registrech Windows XP. Oním klíčem je
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command
Já osobně jsem se s ním setkal, když jsem zkoumal princip a šíření virů (pod pojmem virus zde myslím i červy a spyware) na platformě win32 a musím říct, že tento klíč přímo nahrává jejich tvůrcům. A co že to dělá, že je tak zákeřný? Tento klíč umožňuje definovat program, který bude vykonán automaticky při spuštění libovolného EXE souboru, přičemž původně žádaný EXE mu bude předán jako parametr. Klíč defaultně obsahuje hodnotu
"%1" %*
Viry ji však rády mění na
virus.exe "%1" %*
Pokud pak tedy spustíme jakýkoliv EXE soubor, spustí se nejdříve virus.exe, který vykoná cokoliv nekalého (záleží na tvůrci viru) a poté většinou spustí původní žádaný soubor, který mu byl předán parametrem – uživatel tedy navenek nic nepozná. Dvakrát klikne na ikonku svého oblíbeného programu a ten se mu otevře. Nic co by ho mohlo znepokojovat. Avšak neví, že mezi kliknutím a otevřením programu se udála i činnost viru.
Další nemilá věc tkví i v odstraňování takového viru. Některé antivirové programy detekují změnu tohoto klíče v registru v případě známého viru. Ne všechny ale po smazání souboru virus.exe vrátí hodnotu klíče na původní. Tím pádem se vám zablokuje spouštění jakéhokoliv EXE souboru, protože virus.exe, který se měl po spuštěni jakéhokoliv EXE souboru vykonat, byl již antivirem smazán – to může nejednoho neznalého uživatele přivést k šílenství a následné reinstalaci systému. Řešením je přitom pouze vrátit hodnotu tohoto klíče na původní
"%1" %*
Pokud se o to ale pokusíte, pravděpodobně první co uděláte je, že v okně Spustit napíšete regedit a odentrujete. Jenže ouha! Program regedit se nespustí, jelikož je to také EXE soubor (C:\WINDOWS\regedit.exe). Co tedy s tím? Řešení je naštěstí jednoduché. Program regedit.exe přejmenujte na regedit.com. Poté už regedit jednoduše spustíte (v případě, že vám virus nepřesměroval i spouštění COM souborů;)
Pokud se podíváme na podklíče, které obsahuje klíč: HKEY_LOCAL_MACHINE\ SOFTWARE\Classes
zjistíme, že EXE soubory nejsou jediným typem souboru, jehož spouštění můžeme přesměrovat na určitý program.
Tento klíč by šel využít například pro program, který by monitoroval veškeré spouštění programů na daném PC. Program vždy uložil jméno spouštěného souboru (což by byl vlastně jeho první parametr) a čas spuštění do logu a poté onen soubor spustil. V logu byste pak měli zaznamenamé všechny EXE soubory, které byly na daném PC spuštěny. Fantazii se meze nekladou – však tvůrci virů by mohli vyprávět;)