Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   Как обеспечить контроль доступа к ключам реестра? (http://forum.oszone.net/showthread.php?t=107302)

ChVL 19-05-2008 13:03 806047

Как обеспечить контроль доступа к ключам реестра?
 
Программа удаляет жизненно необходимые ключи в своём личном подразделе HKCU\Software\...\ Делает она это предательски в любой момент времени во время своей работы. Для решения проблемы вижу несколько путей.

1. Запретить доступ программе к этому подразделу. Вручную это делается через опцию Разрешения путём установки запрета для SYSTEM или вообще удалением всех разрешений. А как это сделать программно?

2. Пусть себе удаляет. Достаточно усечь момент удаления ключей, после чего можно запустить reg-файлик и восстановить нужные ключи. Как вытащить эту команду, по которой программа обращается к подразделу во время удаления?

3. При старте программы запускаю автогенерацию reg-файла, и это прекрасно работает. Однако при закрытии программы автогенерацию необходимо отключить, а для этого надо иметь команду о закрытии программы. Можно ли её вытащить? Привязаться к записям в .ini или созданию/удалению какого-нибудь файла не удалось – нет ничего такого.

Petya V4sechkin 19-05-2008 13:15 806055

Цитата:

Цитата ChVL
1. Запретить доступ программе к этому подразделу. Вручную это делается через опцию Разрешения путём установки запрета для SYSTEM или вообще удалением всех разрешений. А как это сделать программно?

SubInACL

ChVL 19-05-2008 17:25 806242

Petya V4sechkin,
Спасибо!
Однако в SubInACL не увидел прямого указания на возможность запрета доступа.
Среди перечисленных Registry PACEs всё понятно, кроме одного: ReAd Control. Расшифровки не нашёл, возможно это среди опций Разрешений в английском варианте Win XP, поэтому они её и не привели. Это оно?

Petya V4sechkin 19-05-2008 17:39 806255

ChVL, например удаление SYSTEM:
Код:

subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /revoke=SYSTEM
или запрет:
Код:

subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /deny=SYSTEM=F

ChVL 20-05-2008 09:00 806673

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 806752

Цитата:

Цитата ChVL
Может проще всем запретить доступ или все разрешения удалить, а как это прописать?

Прочитав документацию (subinacl.htm) и посмотрев пример из 4-го поста, все еще не догадываетесь?
Используйте опции /revoke= или /deny=

ChVL 20-05-2008 19:46 807093

Цитата:

Цитата Petya V4sechkin
Используйте опции /revoke= или /deny= »

Догадаться можно. Однако есть проблема с профилем (думаю, Вы догадались, что там цифры меняются). Прошу прощения за не точно сформулированный вопрос, но в нём имеется ввиду разобраться сразу со всеми группами, а не прописывать каждую отдельной строкой. В этом случае можно было бы проблему профиля решить.
Пошёл изучать subinacl.htm.

Petya V4sechkin 20-05-2008 22:59 807233

Цитата:

Цитата ChVL
но в нём имеется ввиду разобраться сразу со всеми группами

Э-э-э... на худой конец можно всем запретить )
Код:

subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\вашРаздел /deny=Все=SCLDWO
(разрешено только чтение).

ChVL 21-05-2008 08:44 807457

Petya V4sechkin,
Большое спасибо за науку, наверняка это пригодится в дальнейшей работе.
В данном случае приходится отказаться от решения проблемы первым способом (см. первый пост), т.к. программа оказалась хитрее, вернее, весьма предусмотрительной:
- при запуске удаляет запрет с SYSTEM и устанавливает полный доступ. Если же SYSTEM удалить, то при запуске программа снова её создаёт с полным доступом;
- она не видит созданную группу Все.

Буду весьма признателен, если сможете подсказать путь для решения проблемы вторым способом. Конкретизирую. Программа удаляет ключи из своего подраздела Info. Можно ли найти какой-то способ использовать факт удаления и им воспользоваться для того, чтобы сразу после этого запустить reg-файлик или батник?


Время: 00:06.

Время: 00:06.
© OSzone.net 2001-