Показать полную графическую версию : Как обеспечить контроль доступа к ключам реестра?
Программа удаляет жизненно необходимые ключи в своём личном подразделе HKCU\Software\...\ Делает она это предательски в любой момент времени во время своей работы. Для решения проблемы вижу несколько путей.
1. Запретить доступ программе к этому подразделу. Вручную это делается через опцию Разрешения путём установки запрета для SYSTEM или вообще удалением всех разрешений. А как это сделать программно?
2. Пусть себе удаляет. Достаточно усечь момент удаления ключей, после чего можно запустить reg-файлик и восстановить нужные ключи. Как вытащить эту команду, по которой программа обращается к подразделу во время удаления?
3. При старте программы запускаю автогенерацию reg-файла, и это прекрасно работает. Однако при закрытии программы автогенерацию необходимо отключить, а для этого надо иметь команду о закрытии программы. Можно ли её вытащить? Привязаться к записям в .ini или созданию/удалению какого-нибудь файла не удалось – нет ничего такого.
Petya V4sechkin
19-05-2008, 13:15
1. Запретить доступ программе к этому подразделу. Вручную это делается через опцию Разрешения путём установки запрета для SYSTEM или вообще удалением всех разрешений. А как это сделать программно?
SubInACL (http://www.microsoft.com/downloads/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en)
Petya V4sechkin,
Спасибо!
Однако в SubInACL не увидел прямого указания на возможность запрета доступа.
Среди перечисленных Registry PACEs всё понятно, кроме одного: ReAd Control. Расшифровки не нашёл, возможно это среди опций Разрешений в английском варианте Win XP, поэтому они её и не привели. Это оно?
Petya V4sechkin
19-05-2008, 17:39
ChVL, например удаление SYSTEM:
subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /revoke=SYSTEM
или запрет:
subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /deny=SYSTEM=F
Petya V4sechkin,
Работает, но моя задача не выполнена. SubInACL выдаёт следующее:
subinacl.exe /subkeyreg HKEY_CURRENT_USER”\Software\Test Prog\Info” /revoke=SYSTEM
Software\Test Prog\Info : delete Perm. ACE 3 nt authority\system
Software\Test Prog\Info : delete Perm. ACE 2 nt authority\system
HKEY_CURRENT_USER\Software\Test Prog\Info : 2 change(s)
Elapsed Time: 00 00:00:00
Done: 1, Modified 1, Failed 0, Syntax errors 0
Last Done : HKEY_CURRENT_USER\Software\Test Prog\Info
Смотрю Разрешения: SYSTEM действительно удалён.
subinacl.exe /subkeyreg HKEY_CURRENT_USER”\Software\Test Prog\Info” /deny=SYSTEM=F
Software\Test Prog\Info : delete Perm. ACE 3 nt authority\system
Software\Test Prog\Info : delete Perm. ACE 2 nt authority\system
Software\Test Prog\Info : new ace for nt authority\system
HKEY_CURRENT_USER\Software\Test Prog\Info : 3 change(s)
Elapsed Time: 00 00:00:00
Done: 1, Modified 1, Failed 0, Syntax errors 0
Last Done : HKEY_CURRENT_USER\Software\Test Prog\Info
Смотрю Разрешения: для SYSTEM действительно установлен запрет полного доступа.
В обоих случаях после каждой из этих процедур программа всё равно ключи из подраздела Info удаляет. Оказывается, эта зловредная прога использует все группы пользователей, в том числе и Администраторы. Она ещё создала профиль пользователя S-1-5-21-… Может проще всем запретить доступ или все разрешения удалить, а как это прописать?
Petya V4sechkin
20-05-2008, 11:09
Может проще всем запретить доступ или все разрешения удалить, а как это прописать?
Прочитав документацию (subinacl.htm) и посмотрев пример из 4-го поста, все еще не догадываетесь?
Используйте опции /revoke= или /deny=
Используйте опции /revoke= или /deny= »
Догадаться можно. Однако есть проблема с профилем (думаю, Вы догадались, что там цифры меняются). Прошу прощения за не точно сформулированный вопрос, но в нём имеется ввиду разобраться сразу со всеми группами, а не прописывать каждую отдельной строкой. В этом случае можно было бы проблему профиля решить.
Пошёл изучать subinacl.htm.
Petya V4sechkin
20-05-2008, 22:59
но в нём имеется ввиду разобраться сразу со всеми группами
Э-э-э... на худой конец можно всем запретить )
subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /deny=Все=SCLDWO
(разрешено только чтение).
Petya V4sechkin,
Большое спасибо за науку, наверняка это пригодится в дальнейшей работе.
В данном случае приходится отказаться от решения проблемы первым способом (см. первый пост), т.к. программа оказалась хитрее, вернее, весьма предусмотрительной:
- при запуске удаляет запрет с SYSTEM и устанавливает полный доступ. Если же SYSTEM удалить, то при запуске программа снова её создаёт с полным доступом;
- она не видит созданную группу Все.
Буду весьма признателен, если сможете подсказать путь для решения проблемы вторым способом. Конкретизирую. Программа удаляет ключи из своего подраздела Info. Можно ли найти какой-то способ использовать факт удаления и им воспользоваться для того, чтобы сразу после этого запустить reg-файлик или батник?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.