Vadim Sterkin
VN Наблюдательный совет
- Сообщения
- 106
- Реакции
- 74
function RegKeyResetSecurity(ARoot, AName : string) : boolean;
Удаляет все привилегии ключа реестра AName, делая его доступным для всех пользователей. Данная функция полезна для удаления ключей реестра, созданных вредоносными программами - нередко после создания ключа зловред меняет привилегии доступа к нему, блокируя все операции, кроме чтения.
Совместимость: AVZ 4.32 и выше
Пример:
На заметку: Начиная с версии 4.32 функции RegKeyDel и DeleteService автоматически вызывают RegKeyResetSecurity в случае необходимости.Код:begin RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\TrojanDriverKey'); end.
Извиняюсь, а можно вопрос? А если я просто в "Редакторе реестра" шелкну "Разрещения" и добавлю себе права, разве не сработает?function RegKeyResetSecurity(ARoot, AName : string) : boolean;
Удаляет все привилегии ключа реестра AName, делая его доступным для всех пользователей. Данная функция полезна для удаления ключей реестра, созданных вредоносными программами - нередко после создания ключа зловред меняет привилегии доступа к нему, блокируя все операции, кроме чтения.
Скорее всего сможете, в большинстве случаев, но эта рекомендация на тот случай, когда не получится.Извиняюсь, а можно вопрос? А если я просто в "Редакторе реестра" шелкну "Разрещения" и добавлю себе права, разве не сработает?
Во-первых, посмотрите дату создания темы и выпуска АВЗ версии 4.32 и тогда кое-что поймёте, во-вторых относительно Windows, вторична АВЗ, а приведенная утилита разработана специалистами МС. Притом блокируется доступ для того что бы поправить внесённые изменения, например такие как замена systemroot на fystemroot, тут удаление ключа не поможет.Зачем скачивать и юзать дополнительные утилиты - если данные действия можно произвести в AVZ при помощи функции RegKeyResetSecurity:
Извиняюсь, а можно вопрос? А если я просто в "Редакторе реестра" шелкну "Разрещения" и добавлю себе права, разве не сработает?
Вот мой скрипт AVZ для исправления этой проблемы:Притом блокируется доступ для того что бы поправить внесённые изменения, например такие как замена systemroot на fystemroot, тут удаление ключа не поможет.
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
end.
Еще проще твиками.3) Идёт речь о лечение компьютеров с помощью спец утилит, а не ручной правке реестра - можно например вручную менять ключ запуска проводника на оригинальный, удалять записи о отладчиках процессов (зловреды так блочат запуск зашитного софта), править файловые ассоциации - но проще всё же это сделать с помощью спец утилит...
Возникает вопрос, а зачем Вам учиться если Вы все знаете? Мне вот например все интересно, так как все в новинку. А Вы судя по подписи, вроде даже с помощью GMER лечите. Я здесь уже почти месяц, а до альтернативных утилит даже еще не дошел.Вот мой скрипт AVZ для исправления этой проблемы:Код:begin RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS'); RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv'); RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs'); RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs'); end.
Еще проще твиками.
Возникает вопрос, а зачем Вам учиться если Вы все знаете? Мне вот например все интересно, так как все в новинку. А Вы судя по подписи, вроде даже с помощью GMER лечите. Я здесь уже почти месяц, а до альтернативных утилит даже еще не дошел.
Зачем скачивать и юзать дополнительные утилиты - если данные действия можно произвести в AVZ при помощи функции RegKeyResetSecurity:
Тогда не было - сейчас есть - нужно идти в ногу со временем и дополнить статью.AVZ 4.32 вышла 21.08.2009, а вот тема создана 07.07.2009. Тогда такого функционала в AVZ не предусматривалось.
Да и скрипт по исправлению последствий fystemRoot не совсем полон.
Windows Registry Editor Version 5.00
; Registry Search 2.0 by Bobbi Flekman © 2005
; Version: 2.0.6.0
; Results at 14.04.2009 19:13:34 for strings:
; 'fystemroot'
; Strings excluded from search:
; (None)
; Search in:
; Registry Keys Registry Values Registry Data
; HKEY_LOCAL_MACHINE HKEY_USERS
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\BITS]
; Contents of value:
; %fystemRoot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\wuauserv]
; Contents of value:
; %fystemroot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\BITS]
; Contents of value:
; %fystemRoot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\wuauserv]
; Contents of value:
; %fystemroot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\controlset004\Services\BITS]
; Contents of value:
; %fystemRoot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\controlset004\Services\wuauserv]
; Contents of value:
; %fystemroot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS]
; Contents of value:
; %fystemRoot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv]
; Contents of value:
; %fystemroot%\system32\svchost.exe -k netsvcs
"ImagePath"=hex(2):25,00,66,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
; End Of The Log...
Если и исправлять последствия то в полном объеме.
Вот пример скрипта:function RegSearch(ARoot, AName, AValue : string) : boolean;
Производит сканирование ключа AName раздела реестра ARoot и осуществляет поиск образца AValue. Информация о всех найденных ключах выводится в протокол. Если AName равен пустой строке, то сканируются все ключи раздела ARoot. Сравнение с образцом идет без учета регистра, допускаются частичные совпадения. Функция полезна для поиска в реестре определенных данных, например ссылок на файл с известным именем. Поиск может занять длительное время (до нескольких минут).
Пример:
Данный пример производит поиск в реестре и выводит в протокол информацию о всех вхождениях 'svchost.exe' в реестре.Код:begin RegSearch('HKLM', '', 'svchost.exe'); end.
begin
RegSearch('HKLM', 'System', 'fystemRoot');
end.
Если вы не выгнали всех зловредов то смысла в правке реестра практически нет, за редким исключением.Здесь может быть много нюансов:
1) Зловред может отключить редактор реестра.
Если зловред удалён, то получится.2) Я не пробывал вручную менять права доступа у ключей созданных зловредами - поятому точно ничего утверждать не могу (получится или нет)...
Внимательнее прочитайте цитату приведенную в вашем сообщенииКстати причём тут удаление ключа - я вроде о нём ничего не упоминал...
Вынужден с вами не согласится. т.к. после того как в логе АВЗ нет никаких зловредов, другие утилиты удаляют ещё их, иногда одного-двух, а иногда и десятки.Я вообше придерживаюсь классического подхода при личение - использовать как можно меньше разнообразных утилит - дабы не путать пользователей и не заставлять их делать кучу разных логов в которых нет острой необходимости...
Ещё раз повторю то что я уже писал:Если вы не выгнали всех зловредов то смысла в правке реестра практически нет, за редким исключением.
Если зловред удалён, то получится.
На это тему можно ещё долго спорить.Идёт речь о лечение компьютеров с помощью спец утилит, а не ручной правке реестра - можно например вручную менять ключ запуска проводника на оригинальный, удалять записи о отладчиках процессов (зловреды так блочат запуск зашитного софта), править файловые ассоциации - но проще всё же это сделать с помощью спец утилит...
Это вам стоит внимательно перечитать цитату и понять что там написано...Внимательнее прочитайте цитату приведенную в вашем сообщении
Ваша цитата:RegKeyResetSecurity - удаляет все привилегии ключа реестра, делая его доступным для всех пользователей.
О том как поправить изменения я вам уже написал, повторяться не буду...Притом блокируется доступ для того что бы поправить внесённые изменения, например такие как замена systemroot на fystemroot, тут удаление ключа не поможет.
В реальной практике лечения такие случае возникнут редко (имеется ввиду невозможность определить зловреда при помощи связки AVZ + HijackThis + GMER) - поэтому и логи дополнительными утилитами нужно просить делать когда этими утилитами отработали по полной, а проблемы остались (зловред не обнаружен или не добит), т.е. только при реальной необходимости в дополнительных логах, а не сразу - пользователь пришёл лечиться - ему говорят скачайте 10 утилит, разберитесь в их работе, сделайте 10 логов этими утилитами, выложите их и т.д. (цифра 10 так от болды взята) - зачем пользователя изначально загонять в тупик - заставлять делать лишнюю работу - но это чисто моё мнение - я его никому не навязываю...Вынужден с вами не согласится. т.к. после того как в логе АВЗ нет никаких зловредов, другие утилиты удаляют ещё их, иногда одного-двух, а иногда и десятки.
Тут можно вспомнить пресловутый Кидо, которого долгое время АВЗ в своих логах вообще не отображала, а логи Combofix и Gmer дополняли друг друга, кстати, снова начали встречаться разновидности Кидо, которые АВЗ не видит.
var count:integer;
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
for count:=1 to 9 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet00'+IntToStr(count)+' найден.');
end;
end;
for count:=10 to 99 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet0'+IntToStr(count)+' найден.');
end;
end;
for count:=100 to 999 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet'+IntToStr(count)+' найден.');
end;
end;
end.
Ну как вам скрипт..?
Из реальной практики. У AVZ есть несколько довольно неприятных недостатковВ реальной практике лечения такие случае возникнут редко (имеется ввиду невозможность определить зловреда при помощи связки AVZ + HijackThis + GMER)
var count:integer;
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
for count:=1 to 9 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet00'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet00'+IntToStr(count)+' найден.');
end;
end;
for count:=10 to 99 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet0'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet0'+IntToStr(count)+' найден.');
end;
end;
for count:=100 to 999 do
begin
if RegKeyExists('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)) then
begin
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet'+IntToStr(count)+'\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
AddToLog('Раздел ControlSet'+IntToStr(count)+' найден.');
end;
end;
end.
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS');
RegKeyResetSecurity('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\BITS', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
RegKeyStrParamWrite('HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'ImagePath', '%SystemRoot%\System32\svchost.exe -k netsvcs');
Перебор до 999 задан чисто теоретически - я сам точно не знаю какой максимальный номер может быть задан, поэтому чисто решил остановится на числе 999. В логах GMER встречал записи созданные зловредами если мне не изменяет память с нумерацией разделов до 100 (т.е. он например создавал разделы ControlSet044, ControlSet057) - поэтому я с запасом решил сделать перебор до 999 - но на ресурсоемкости серипта это никак не отображается - скрипт вмиг перебирает все разделы.Ingener, Привет. Я с Delphi поверхностно знаком.
И всё, зачем нужен перебор до 999 ?
P.S. В гугле я нашёл значение ControlSet100 и ControlSet004, это к слову, но не знаю отчего зависит количество этих разделов?
ControlSet1
***
ControlSet10
***
ControlSet100
***
ControlSet999
ControlSet001
***
ControlSet010
***
ControlSet100
***
ControlSet999
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 RegKeyExists('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 RegKeyExists('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.
А, понял, спасибо.Перебор до 999 задан чисто теоретически - я сам точно не знаю какой максимальный номер может быть задан, поэтому чисто решил остановится на числе 999
Ingener, Мой друг Serega, реализовал пример-программу на Delphi с ведущими нулями перед числом. Оригинальный код:Люди говорили что как-то можно добавить ведущие нули, но я не разобрался как это сделать
program Project1;
uses
Windows,
SysUtils;
var
i: Integer;
s: string;
begin
for i:= 0 to 10 do s:= s + FormatFloat('Template0000', i) + '.txt' + #13;
MessageBox(0, PChar(s), 'Сообщение', MB_ICONEXCLAMATION);
end.
...
NumStr:= NumStr + FormatFloat('ControlSet000', j);
...
if RegKeyExists('HKLM', 'SYSTEM\'+NumStr+'\Services\BITS')
...
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?