29 Марта 2011
Про заблокированный вирусами редактор реестра и диспетчер задач написано уже столько, что можно, пожалуй, выпускать сборник лучших статей и с новой песней ехать на Евровидение. Однако, большинство пользователей и несколько ленивых программистов все еще задаются вопросом, а как же злобные вирусы это делают, и как хорошие дяденьки это лечат? И те, и другие пользуются одним и тем же инструментом, который прост, как теорема о гомоморфизмах для первокурсника - если знаешь, откуда списать, то все получится, - поскольку в этой песне достаточно выучить только 3 попсовых аккорда и перевести их на язык, понятный Windows API. Итак, записывайте...
Может быть не все знают, но о том, запускать или нет редактор реестра и диспетчер задач, Windows спрашивает ключ не у вахтерши в главном офисе Microsoft, а у собственного реестра. Поэтому первым делом следует узнать у кого-нибудь владеющего начальными знаниями по поиску в интернете, а в каком именно ключе реестра можно об этом прочитать? Если ты не знаешь, как устроен реестр или что такое ключ, дальше можно читать только с целью повторения букв русского алфавита, либо для общего образования, что тоже не возбраняется. Итак, по странному совпадению отключить (и влючить, конечно) РР и ДЗ можно, разыскав в реестре ветку "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System". При этом, если присмотреться внимательно и вооружиться англо-русским словариком, то можно разглядеть в этом разделе два искомых параметра: "DisableRegistryTools" и "DisableTaskMgr". Как нетрудно догадаться людям, читающим MSDN в подлиннике, первый отвечает за сохранность редактора реестра, а второй - за диспетчер задач. Однако, не стоит пить валидол и переставлять Windows, если ты не обнаружил этих параметров, ибо секрет фокуса в том, что их может видеть только сильно больной человек с нездоровой операционной системой. Тут все просто: есть параметр - нет доступа, нет параметра - выдохни.
Ну что ж, клад найден, осталось купить лопату. По намеченному ранее плану, первым делом мы должны найти соответствующую ветку реестра, затем проверить наличие ключа, и уж потом, при необходимости, ампутировать. Я же обещал, что будет всего три попсовых аккорда!
1. Найдем ветку реестра:
RegOpenKey - это наше первое заклинание, вызывающее дух открытого ключа реестра, HKEY_CURRENT_USER - в этом разделе будем искать, 0 - просто так надо, KEY_READ - читаем по-английски, и сохраняем результат в ранее объявленную переменную Key типа HKEY.
2. Проверим наличие параметра
RegQueryValueEx используем, чтобы опросить подозреваемых, при этом во второй параметр пишем искомое, а про Key я уже говорил. Если функция вернет ERROR_SUCCESS, то нифига это не успех, это значит, что данный параметр существует и придется резать по-живому.
3. Хирургическое вмешательство. Если анализ был положительным, самое время заняться DELом.
RegDeleteValue - последнее заклинание, чтобы удалить негодяя.
Вот такие вот нехитрые телодвижения я собрал в одно целое:
Ну, конечно же, у меня есть еще пара модулей с окошками и прочей атрибутикой, но к делу это уже мало относится. А готовый экземпляр лежит в разделе "Программы"
< Предыдущая | Следующая > |
---|