PDA

Просмотр полной версии : %fystemroot% или "Где мой Windows Update?"



Bratez
13.04.2009, 03:59
Какой-то из популярных нынче вирусов повадился курочить системные службы, отвечающие за обновление Windows: "Автоматическое обновление" (wuauserv) и "Фоновая интеллектуальная служба передачи" (BITS).

Для обеих служб строка запуска в реестре выглядит одинаково:
%SystemRoot%\system32\svchost.exe -k netsvcs

Зловред меняет первую букву S на f и получается
%fystemRoot%\system32\svchost.exe -k netsvcs
что делает запуск службы невозможным.

Исправить это вручную можно так:

1. Нажмите Пуск - Выполнить, введите regedit и нажмите ОК.

2. Раскрывая "плюсиками" структуру в левой части окна, найдите подраздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\BITS

3. Щелкните его правой кнопкой мыши и выберите Разрешения... Убедитесь, что группе администраторов разрешен полный доступ. Если не разрешен - включите его.

4. Выделив данный подраздел, найдите в правой части окна параметр ImagePath, который содержит приведенную выше строку запуска, и исправьте его значение.

5. То же самое проделайте с подразделом
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\wuauserv

6. Вышеописанные действия следует также произвести во всех ветках
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetnnn\...
(nnn может принимать значения 001, 002,...; обычно их две или три).

Внимание! Работая с regedit, будьте предельно внимательны и аккуратны. Внесенные изменения сохраняются сразу, а возможность автоматического отката отсутствует!

С помощью AVZ, начиная с версии 4.32, проблема решается гораздо проще.
Достаточно выполнить такой скрипт:

var j:integer; NumStr:string;
begin
for j:=0 to 999 do
begin
if j=0 then
NumStr:='CurrentControlSet' else
if j<10 then
NumStr:='ControlSet00'+IntToStr(j) else
if j<100 then
NumStr:='ControlSet0'+IntToStr(j) else
NumStr:='ControlSet'+IntToStr(j);
if RegKeyExistsEx('HKLM', 'SYSTEM\'+NumStr+'\Services\BITS') then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\'+NumStr+'\Services\BITS');
RegKeyStrParamWrite('HKLM', 'SYSTEM\'+NumStr+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Значение параметра ImagePath в разделе реестра HKLM\SYSTEM\'+NumStr+'\Services\BITS исправлено на оригинальное.');
end;
if RegKeyExistsEx('HKLM', 'SYSTEM\'+NumStr+'\Services\wuauserv') then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\'+NumStr+'\Services\wuauserv');
RegKeyStrParamWrite('HKLM', 'SYSTEM\'+NumStr+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Значение параметра ImagePath в разделе реестра HKLM\SYSTEM\'+NumStr+'\Services\wuauserv исправлено на оригинальное.');
end;
end;
SaveLog(GetAVZDirectory + 'fystemRoot.log');
end.
Протокол выполнения скрипта можно увидеть в файле fystemRoot.log,
который появится в папке с AVZ.