А сегодня - никому не нужные заметки о том, как вручную восстановить работоспособность завирусованной переглючившей винды, не имея под рукой специального софта, то есть практически пользуясь только стандартными виндовыми средствами. Впрочем, антивирус все равно пригодится на последнем шаге, хотя можно и без него, если делать все повнимательнее. Пост из категорий "для опытных админов - чиста поржать, для неопытных - авось пригодится, для простого юзера - на фиг читать, все равно непонятно".
1) Восстановление работы редактора реестра (сообщение "Редактирование реестра запрещено администратором системы").
2) Восстановление работы диспетчера задач (сообщение "Диспетчер задач отключен администратором").
3) Восстановление работы опций показа скрытых файлов (никаких сообщений, просто при установке они не работают и сбрасываются назад).
4) Поиск и удаление вирусов, троянов и прочей гадости (вручную и не совсем). Заодно - как удалить заблокированный системой файл и что указывает системе, откуда нужно запустить какую-нибудь пакость.
В общем, дано: завирусованный комп с виндой, в которую даже залогиниться в нормальном режиме нельзя. Задача: сделать так, чтобы нормально работало.
Решение:
Ура, в безопасном режиме администратором войти можно! А то было бы немного сложнее, хотя и решаемо... А так - запускаем проводник, в настройках включаем показ скрытых файлов, заодно и системных тоже. Опа, не включается? Лезем в реестр. Блин, он тоже не запускается! И диспетчер задач тоже?
1) Что ж, включаем возможность запуска редактора реестра, в командной строке:
C:\>REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools
Подтверждаем, запускаем regedit, радуемся тому, что он работает.
2) Там правим ключик DisableTaskMgr в ветке HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\ Policies\System, устанавливаем его значение в 0.
3) Теперь спокойно восстанавливаем нормальную работу опций по показу скрытых файлов. Это в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL устанавливаем CheckedValue в 1, DefaultValue в 2. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\NOHIDDEN такие же параметры - оба в 2. А в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\SuperHidden устанавливаем CheckedValue в 0, UncheckedValue в 1, DefaultValue в 0.
В диспетчере задач грохаем процесс explorer, после чего оттуда же его и запускаем.
4) Порадовавшись возможности видеть скрытые файлы, лезем в c:\windows\system32 (ну или в G:\WinDozEmuStDie\system32 - если винда установлена не по стандартному пути) и устанавливаем там сортировку файлов по дате изменения. И видим свеженькие вчерашние dll, скрытые и не скрытые, с подозрительными или не очень названиями (кстати, кроме dll среди этих свежих файлов, могут быть файлы и с другими расширениями - vxd, sys, vbs, exe, com, scr, cpl и куча прочих, но легальные из них только dbl, dat, да логи всякие). Вы устанавливали программы, которые были написаны только вчера? Нет? Мне такие встречались, но только когда я работал в фирме, занимавшейся разработкой ПО. А сейчас не тот случай. В общем, сносим эти файлы или переименовываем, добавляя к расширению что-нибудь вроде "но_пасаран!" (для дальнейшей проверкой антивирусом).
Как, они заблокированы и не сносятся? Блокированные файлы без помощи постороннего софта удаляем так: в свойствах файла в безопасности устанавливаем запрет на чтение и выполнение для всех пользователей, включая SYSTEM (эта вкладка в безопасном режиме доступна даже в XP Home. Если ее нет - значит в свойствах проводника стоит галочка использовать "простой общий доступ к файлам" и ее надо снять). После перезагрузки системы эти файлы можно будет удалить.
Такую же примитивную проверку файлов на вшивость нужно произвести и в c:\windows (кстати, там могут попасться звери, маскирующийся под системные svchost или, скажем, iexplore, впрочем, и не только там), и в c:\Documents and Settings\, где проверить папки пользователей и AllUsers тоже. Очень часто в них можно найти много интересного.
Но до перезагрузки нужно ещё немного поковырять реестр.
В реестре потребуется проверить несколько веток. Вот, по порядку, где может прятаться автозапуск какой-нибудь гадости:
а) HKCR\exefile\shell\open\command - значение по умолчанию должно быть "%1" %* и никаким другим. Вот если там стоит soundmix "%1" %* то это soundmix, старый уже, но симпатичный зверь. Могут быть и другие. Кстати, именно здесь восстанавливается запуск программ поcле удаления вируса, прописавшего себя сюда (в этом случае добраться до реестра можно путем запуска regedit через Run As, например). Надо просто из значения ключа убрать слово soundmix или что там еще написано.
б) HKLM\Software\Microsoft\Windows\CurrentVersion\Run - там много ключей, осуществляющих автозапуск всякой ерунды, вроде Мэйл.ру агентов, ускорителей запуска Акробат-ридера, демонов панели управления Nvidia и прочего... В общем, тут надо отделить зерна от плевел и поудалять ключики, запускающие вирусовую гадость. Как определить, что это гадость? Интуиция. Опыт. Знания. Анализ путей, по которым файлы расположены. Или просто можно проверить файлы, на которые ссылаются эти ключи. В конце концов, метод тыка - ничего страшного не случится, ну аська или скайп автоматом не запустится при старте системы...
Соседняя ветка RunOnce вообще должна быть пустой.
Также проверяется и очищается HKCU\Software\Microsoft\Windows\CurrentVersion\Run (надо бы зайти под каждым пользователем, или лезть в каждый из ключей HKUS\S-1-5-ля-ля-ля).
в) HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify. Здесь много разделов, на основании записей которых запускаются различные функции во время показа экрана входа в систему. Следует удалить ненужные разделы. Какие из них ненужные? Ха... Кто же вам скажет? В общем, это те, параметр DLLName которых, кроме имени dll содержит и путь к ней. Иногда и без пути, ну тут только проверка, что это за dll (такие практически все лежат в system32, а проверка - да навести мышку на файл и посмотреть во всплывающем окошке, кто производитель, если что-то известное - все в порядке). Да, перед удалением любого из этих разделов вообще-то нужно пройти по указанному пути и посмотреть, не удалили ли этот файл еще в начале четвертого шага, и если там гадость - удалять ее смело.
г) Там же в HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon могут быть неверно заданы хитрые ключи Shell и Userinit. Должно быть explorer.exe и C:\Windows\system32\userinit.exe соответственно (если не стоит какая-нибудь экзотическая оболчка вместо стандартной, конечно). Если там что-то написано кроме этого - оно также может быть запущено.
д) HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options. Тут просто до фига веток, в которых перечислены файлы, для которых применяются особые условия исполнения. И если в записи для файла есть ключик Debugger - то его запуск происходит через отладчик, коим выступает программа прописанная в этом ключе. А "отладчиком" может быть что угодно. В нормальной системе этот ключ должен быть только в разделе "Your Image File Name Here without a path" - это просто заготовка для создания записей. Остальные можно сносить. Зачем вам отладчики-вирусы? Да, опять же, стоит проверить, удален ли сам вирус - ведь теперь известны и путь к нему, и имя.
е) Однажды попался очень экзотический вирус, содержащийся в ядре системы. Законное ядро было подменено на измененное с помощью опции /kernel= в строке загрузки системы в файле boot.ini.
ж) Другие способы - загрузка по ссылкам из файлов win.ini, system.ini встречаются крайне редко, потому что устарели. Довольно редко встречается и загрузка из пункта автозагрузки главного меню. Но эти места тоже стоит проверить.
Возможно, что всю процедуру придется провести еще разок-другой.
После перезагрузки компа надо еще разок проверить реестр, потому что удаленные записи могли быть восстановлены работавшим на момент их удаления вирусом.
Также стоит проверить содержимое файла c:\windows\system32\drivers\etc\hosts на наличие левых записей, или предотвращающих загрузку обновлений антивирусов, или искажающие IP-адреса какого-нибудь гугла и в результате перенаправляющие браузер на фальшивые сайты.
Дальше на почти уже чистый комп ставится антивирус, обновляются его базы, и прогоняется полная проверка. Наверняка, он найдет что-нибудь еще, но это будут вирусы, которые лежат, так сказать, в анабиозе и ждут, когда кто их разбудит. Перед запуском антивируса можно очистить любые найденные в системе папки TEMP и кэши браузеров - так все пойдет быстрее. Очень удобно использовать какую-нибудь программку, вроде CCleaner, которая и диск от мусора подметет, и реестр вычистит (при чистке реестра процедуру надо несколько раз провести). Кстати, антивирусы в большинстве случаев ссылки на запуск вирусов из реестра не удаляют.
Если в конце концов вы получили чистую систему, но при перезагрузке она показала вам синий экран смерти - то читайте следующую заметку. Ну, которая будет позже. Про переустановку Windows там не будет сказано ни слова, кстати. Переустановка - это или для тех, кому времени на переустановку всего софта и его настройку не жалко, или для слабонервных, или просто слабых, или совсем уж в тяжелых случаях, вроде исчезновения двух третей системных файлов. А у нас тут реанимация тех, у кого есть шанс выжить.