Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Как устранить проблему, связанную с %fystemroot%


Рекомендуемые сообщения

AVZ, меню "Файл - Выполнить скрипт" -- Скопировать ниже написанный скрипт-- Нажать кнопку "Запустить".

varDescriptionTextWuauServ, DispayNameTextWuauServ, DescriptionTextBITS: String;DispayNameTextBITS, FullPathSystem32, NameFolderSystem32, FileServiceDll: String;ImagePathStr, RootStr, SubRootStr, LangID: string;AllRoots, AllKeys, RootsRestored, KeysRestored, KeysFixed: integer;FinishMsg, RestoreMsg, FixMsg, CheckMsg: String;RegSectMsg, ParamMsg, ParamValueMsg, InRegSectMsg, CorrectMsg, RestMsg: String;procedure CheckAndRestoreSection(Root: String);beginInc(AllRoots);if RegKeyExistsEx('HKLM', Root) then RegKeyResetSecurity('HKLM', Root) else  beginInc(RootsRestored);RegKeyCreate('HKLM', Root);AddToLog(RegSectMsg + Root + RestMsg);  end;end;procedure CheckAndRestoreSubSection;beginCheckAndRestoreSection(SubRootStr);end;procedure RestoredMsg(Root, Param: String);beginAddToLog(ParamMsg + Param + InRegSectMsg + Root + RestMsg);Inc(KeysRestored);end;procedure FixedMsg(Root, Param: String);beginAddToLog(ParamValueMsg + Param + InRegSectMsg + Root + CorrectMsg);Inc(KeysFixed);end;procedure RestoreStrParam(Root, Param, Value: String);beginRegKeyStrParamWrite('HKLM', Root, Param, Value);RestoredMsg(Root, Param);end;procedure CheckAndRestoreStrParam(Root, Param, Value: String);beginInc(AllKeys);if not RegKeyParamExists('HKLM', Root, Param) then RestoreStrParam(Root, Param, Value);end;procedure CheckAndRestoreIntParam(Root, Param: String; Value: Integer);beginInc(AllKeys);if not RegKeyParamExists('HKLM', Root, Param) then begin  RegKeyIntParamWrite('HKLM', Root, Param, Value);  RestoredMsg(Root, Param); end;end;procedure CheckAndRestoreMultiSZParam(Param, Value: String);beginInc(AllKeys);if not RegKeyParamExists('HKLM', RootStr, Param) then  beginExecuteFile('REG ADD HKLM\' + RootStr + ' /v ' + Param + Value, '', 0, 10000, true);RestoredMsg(RootStr, Param);  end;end;// Исправление значения параметра ImagePath для служб 'wuauserv' и 'BITS'procedure ImagePathFix(Node, Srv: String);var RegStr: String;beginRegStr:= 'SYSTEM\' + Node + '\Services\' + Srv;if RegKeyExistsEx('HKLM', RegStr) then begin  Inc(AllKeys);  RegKeyResetSecurity('HKLM', RegStr);  RegKeyStrParamWrite('HKLM', RegStr, 'ImagePath', ImagePathStr);  FixedMsg(RegStr, 'ImagePath'); end;end;{ Выполнение исправление всех ключей в ветках -  'HKLM\SYSTEM\CurrentControlSet\Services\BITS' и 'HKLM\SYSTEM\CurrentControlSet\Services\wuauserv'}procedure CorrectRegistryRoot(DescriptionText, DisplayNameText, Srv: String);var FileServiceDll, CCSNumber: string; i : integer;beginif Srv = 'BITS' then FileServiceDll := FullPathSystem32 + 'qmgr.dll' else FileServiceDll := FullPathSystem32 + 'wuauserv.dll';RootStr:= 'SYSTEM\CurrentControlSet\Services\' + Srv;CheckAndRestoreSection(RootStr);CheckAndRestoreStrParam(RootStr, 'Description', DescriptionText);CheckAndRestoreStrParam(RootStr, 'DisplayName', DisplayNameText);CheckAndRestoreStrParam(RootStr, 'ObjectName', 'LocalSystem');Inc(AllKeys);if not RegKeyParamExists('HKLM', RootStr, 'ImagePath') then RestoreStrParam(RootStr, 'ImagePath', ImagePathStr) else  beginDec(AllKeys);if LowerCase(RegKeyStrParamRead('HKLM', RootStr, 'ImagePath')) <> LowerCase(ImagePathStr) then  for i:= 0 to 999 do   begin	if i > 0	 then CCSNumber:= FormatFloat('ControlSet000', i)	 else CCSNumber:= 'CurrentControlSet';	 ImagePathFix(CCSNumber, Srv);	end;  end;CheckAndRestoreIntParam(RootStr, 'ErrorControl', 1);CheckAndRestoreIntParam(RootStr, 'Start', 2);CheckAndRestoreIntParam(RootStr, 'Type', 32);if Srv = 'BITS' then  beginCheckAndRestoreMultiSZParam('DependOnService', ' /t REG_MULTI_SZ /d RpcSs');CheckAndRestoreMultiSZParam('DependOnGroup', ' /t REG_MULTI_SZ');  end;SubRootStr:= RootStr + '\Enum';CheckAndRestoreSubSection;CheckAndRestoreStrParam(SubRootStr, '0', 'Root\LEGACY_' + UpperCase(Srv) + '\0000');CheckAndRestoreIntParam(SubRootStr, 'Count', 1);CheckAndRestoreIntParam(SubRootStr, 'NextInstance', 1);SubRootStr := RootStr + '\Security';CheckAndRestoreSubSection;Inc(AllKeys);if not RegKeyParamExists('HKLM', SubRootStr, 'Security') then begin  RegKeyBinParamWrite('HKLM', SubRootStr, 'Security', '01,00,14,80,78,00,00,00,84,00,00,00,14,00,00,00,30,00,00,00,02,00,1c,00,01,00,00,00,02,80,14,00,ff,00,0f,00,01,01,00,00,00,00,00,01,00,00,00,00,02,00,48,00,03,00,00,00,00,00,14,00,9d,00,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,00,00,14,00,ff,01,0f,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00');  RestoredMsg(SubRootStr, 'Security'); end;SubRootStr:= RootStr + '\Parameters';CheckAndRestoreSubSection;Inc(AllKeys);if not RegKeyParamExists('HKLM', SubRootStr, 'ServiceDll') then begin  RegKeyParamWrite('HKLM', SubRootStr, 'ServiceDll', 'REG_EXPAND_SZ', FileServiceDll);  RestoredMsg(SubRootStr, 'ServiceDll'); end  elseif LowerCase(RegKeyStrParamRead('HKLM', SubRootStr, 'ServiceDll')) <> LowerCase(FileServiceDll) then  begin   RegKeyParamWrite('HKLM', SubRootStr, 'ServiceDll', 'REG_EXPAND_SZ', FileServiceDll);   FixedMsg(SubRootStr, 'ServiceDll');  endend;{ Главное выполнение }beginClearLog;ExpRegKey('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'wuauserv.reg');ExpRegKey('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS', 'BITS.reg');LangID:= RegKeyStrParamRead('HKLM', 'SYSTEM\CurrentControlSet\Control\Nls\Language', 'InstallLanguage');if LangID = '0419' then  beginDescriptionTextWuauServ:= 'Включает загрузку и установку обновлений Windows. Если служба отключена, то на этом компьютере нельзя будет использовать возможности автоматического обновления или веб-узел Центра обновления Windows.';DispayNameTextWuauServ:= 'Автоматическое обновление';DescriptionTextBITS:= 'Обеспечивает передачу данных между клиентами и серверами в фоновом режиме. Если служба BITS отключена, такие возможности, как Windows Update, не могут правильно работать.';DispayNameTextBITS:= 'Фоновая интеллектуальная служба передачи (BITS)';AddToLog('Операционная система - русская');FinishMsg:= '–––– Восстановление завершено ––––';RestoreMsg:= 'Восстановлено разделов\параметров: ';FixMsg:= 'Исправлено параметров: ';CheckMsg:= 'Проверено разделов\параметров: ';RegSectMsg:= 'Раздел реестра HKLM\';ParamMsg:= 'Параметр ';ParamValueMsg:= 'Значение параметра ';InRegSectMsg:= ' в разделе реестра HKLM\';CorrectMsg:= ' исправлено на оригинальное.';RestMsg:= ' восстановлен.';  end else  if LangID = '0409'then begin  DescriptionTextWuauServ:= 'Enables the download and installation of Windows updates. If this service is disabled, this computer will not be able to use the Automatic Updates feature or the Windows Update Web site.';  DispayNameTextWuauServ := 'Automatic Updates';  DescriptionTextBITS:= 'Transfers data between clients and servers in the background. If BITS is disabled, features such as Windows Update will not work correctly.';  DispayNameTextBITS:= 'Background Intelligent Transfer Service';  AddToLog('Operation system - english');  FinishMsg:= '–––– Restoration finished ––––';  RestoreMsg:= 'Sections\parameters restored: ';  FixMsg:= 'Parameters corrected: ';  CheckMsg:= 'Sections\parameters checked: ';  RegSectMsg:= 'Registry section HKLM\';  ParamMsg:= 'Parameter ';  ParamValueMsg:= 'Value of parameter ';  InRegSectMsg:= ' in registry section HKLM\';  CorrectMsg:= ' corrected on original.';  RestMsg:= ' restored.'; end;AddToLog('');{ Определение папки X:\Windows\System32\ }NameFolderSystem32:= RegKeyStrParamRead('HKLM', 'SYSTEM\CurrentControlSet\Control\Windows', 'SystemDirectory');ImagePathStr:= NameFolderSystem32 + '\svchost.exe -k netsvcs';Delete(NameFolderSystem32, 1, pos('\', NameFolderSystem32) - 1);FullPathSystem32:= GetEnvironmentVariable('WinDir') + NameFolderSystem32 + '\';AllRoots:= 0;AllKeys:= 0;RootsRestored:= 0;KeysRestored:= 0;KeysFixed:= 0;CorrectRegistryRoot(DescriptionTextBITS, DispayNameTextBITS, 'BITS');CorrectRegistryRoot(DescriptionTextWuauServ, DispayNameTextWuauServ, 'wuauserv');AddToLog('');AddToLog(FinishMsg);AddToLog('');AddToLog(RestoreMsg + IntToStr(RootsRestored) + ' \ ' + IntToStr(KeysRestored));AddToLog(FixMsg + IntToStr(KeysFixed));AddToLog(CheckMsg + IntToStr(AllRoots) + ' \ ' + IntToStr(AllKeys));SaveLog(RegKeyStrParamRead('HKEY_CURRENT_USER', 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Desktop') + '\Correct_wuauserv&BITS.log');end.

После выполнения скрипта на рабочем столе появится текстовый файл Correct_wuauserv&BITS. Его необходимо прикрепить к следующему посту в теме где вам оказывает помощь.

Данный скрипт распространяется свободно и может быть модицифирован по согласованию с авторами - представителями VirusNet.Info

При публикации скрипта данный комментарий обязателен.

Описание:

Из-за своей универсальности скрипт применяется целиком, как есть, для русской и английской локализации Windows. Определение локализации автоматическое.

Скриптом устраняется проблемы вида %fystemroot% как для обеих служб, так и для одной из них: BITS или wuauserv

Скрипт автоматически определит службу с повреждённым параметром и исправит неправильное значение параметра(ов) ImagePath

%[b][color=Red]f[/color][/b]ystemRoot%\system32\svchost.exe -k netsvcs

на правильное

%SystemRoot%\system32\svchost.exe -k netsvcs

Также скрипт применяется для случаев вида

Нестандартный ключ реестра для системной службы: BITS ImagePath=""

Нестандартный ключ реестра для системной службы: wuauserv ImagePath=""

Кратко: некоторые вредоносы удаляют часть параметров из веток и\или параметров в службах BITS и\или wuauserv. И в результате мы можем наблюдать, что в этих ветках обычно присутствует всего две ветки и два параметра: ImagePath и ServiceDll.

Скрипт автоматически производит проверку на наличие необходимых параметров и добавляет, а также исправляет, если это необходимо, на нужные\недостающие.

При выполнении скрипта перед перезаписью для страховки делается бекап двух веток

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITSHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv

Файлы бекапа BITS.reg и wuauserv.reg

Изменено пользователем akoK
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...