RENG.RU

RE/System Programming
Текущее время: 25 ноя 2017, 00:12

Часовой пояс: UTC + 6 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 22 дек 2003, 20:26 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
Привет!

возникла следующая проблема: некий софт (shareware) в качестве хранилища для счетчика запусков и времени работы использует ветку в реестре, имя которой (имя ветки) начинается с 0 и содержит непечатные символы. также внутри этой ветки создано несколько ключей с такими же сложными именами. ну и в довершении всего отбраны права на enumerate всех созданных веток и права на удаление головной ветки (вложенные ветки удалить можно, зная их имена).

в связи с тем что стандартные средства не позволяют работать с такими данными возникает вопрос - существует ли ПО позволяющее изменять права доступа к подобным веткам реестра?

ps
на всякий случай: меня интересует не взлом данного софта а ПО позволяющее производить зачистку реестра ото всякого хлама...

cb.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 дек 2003, 07:49 
Не в сети

Зарегистрирован: 31 июл 2002, 13:32
Сообщения: 450
как я смутно помню на www.sysinternals.com была статья про создание как раз таких ключей в реестре, особенно там заострядось внимание на ключиках, соержащих в своем названии нулевой байт, такие ключи обычным регедитом "обрезались" (он не мог их открыть, так как внутренне использует ASCIIZ строки), и там был пример утильки по работе с такими ключами... Но больше я ничего вспомнить не могу :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 дек 2003, 14:04 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
да - есть такое дело, спасибо... там (на sysinternals) я уже смотрел - к сожалению необходимых мне утилит там нет... в принципе можно все самому написать, но на полноценный продукт времени нет, а полуфабрикат уже и так написан...

ну и плюс хочется узнать о стороннем опыте борьбы с такими вещами (мне понадобился самодельный (переделанный regmon) драйвер фильтр реестра чтоб узнать имена ключей и права на них)...

cb.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 дек 2003, 17:25 
Не в сети

Зарегистрирован: 31 июл 2002, 14:01
Сообщения: 684
cb писал(а):
да - есть такое дело, спасибо... там (на sysinternals) я уже смотрел - к сожалению необходимых мне утилит там нет... в принципе можно все самому написать, но на полноценный продукт времени нет, а полуфабрикат уже и так написан...

ну и плюс хочется узнать о стороннем опыте борьбы с такими вещами (мне понадобился самодельный (переделанный regmon) драйвер фильтр реестра чтоб узнать имена ключей и права на них)...

cb.


Я так понимаю, что работа с "хитрыми" ключами идет через Native API, которое плохо документировано. Возможно, если порыться, можно найти аналог enum-функции, через которую полуить все "хитрые" клчи и значения. Но сам не пробвал...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 дек 2003, 19:29 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
Цитата:
Я так понимаю, что работа с "хитрыми" ключами идет через Native API, которое плохо документировано. Возможно, если порыться, можно найти аналог enum-функции, через которую полуить все "хитрые" клчи и значения. Но сам не пробвал...


со знанием native api проблем особых нет - он частично документирован в ddk. ф-ии для enum-а есть... только прав на enum нету... соответственно этот метод обламывается...

я склоняюсь к следующему варианту: на файловой системе при отсутствии прав на объект админ может стать owner-ом этого объекта с назначением полных прав для админа на этот объект, так вот мне подумалось что в реестре тоже может быть подобная фича. к сожалению имеющийся у меня инструментарий такие фичи делать не умеет, а моя квалицикация в области ms security api не позволяет мне самому реализовать этот механизм (во всяком случае реализовать его в короткие сроки)...

cb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2003, 05:04 
Не в сети

Зарегистрирован: 06 дек 2002, 15:16
Сообщения: 269
Ищи прогу Resplendent Registrar (на руборде была)
В SAM она у меня входит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2003, 08:58 
Не в сети

Зарегистрирован: 31 июл 2002, 13:32
Сообщения: 450
кстати мысль насчет прав.
попробуй запустить редактор реестра с учетки local system, в таком случае тебе без проблем дают редактировать SAM, возможно и те ключики тоже енумать дадут.
Запуск например делается так - "at нужное_тебе_время /interactive regedit.exe". Не помню в какой книге такой совет вычитал...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2003, 09:47 
Для тех кому интересны альтернативные методы редактирования/просмотра реестра сходите сюда может вам поможет :)
http://paullee.ru/regstry.html


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2003, 18:01 
Не в сети

Зарегистрирован: 17 дек 2003, 16:53
Сообщения: 484
mamaich писал(а):
кстати мысль насчет прав.
попробуй запустить редактор реестра с учетки local system, в таком случае тебе без проблем дают редактировать SAM, возможно и те ключики тоже енумать дадут.
Запуск например делается так - "at нужное_тебе_время /interactive regedit.exe". Не помню в какой книге такой совет вычитал...


regedt32 в 9x или в regedit в XP в меню есть пункт - назначить права / убрать права - так что все гораздо проще...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 дек 2003, 18:26 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
2infern0_tsrh:

Цитата:
regedt32 в 9x или в regedit в XP в меню есть пункт - назначить права / убрать права - так что все гораздо проще...


нет - это не помогает поскольку эти утилиты не могут получить корректное имя ключа...

2mamaich:

от local system пробовал - послали... возможно проблема этим бы и решилась если бы ключи имели нормальные имена... а так к local system надо еще тулзу которая нормально работает с такими именами...

2amitophia & BlackWolf:

спасибо - посмотрю...

cb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2003, 21:31 
Не в сети

Зарегистрирован: 20 окт 2002, 22:26
Сообщения: 151
cb
Уточни, как это реализовано?
Прога создает своего пользователя в списке что-ли?
Непонятно, под каким аккаунтом она читает реестр.
Вообще-то, там ничего сложного быть не должно - ZwEnumerateKey прекрасно перебирает такие ключи, надо только доступ к ней прикрутить и стать владельцем этого ключа.
Секурити хорошо расписано у Рихтера в Программировании серверных приложений в 2000-й.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 дек 2003, 04:07 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
Цитата:
Прога создает своего пользователя в списке что-ли?
Непонятно, под каким аккаунтом она читает реестр.
Вообще-то, там ничего сложного быть не должно - ZwEnumerateKey прекрасно перебирает такие ключи, надо только доступ к ней прикрутить и стать владельцем этого ключа.
Секурити хорошо расписано у Рихтера в Программировании серверных приложений в 2000-й.


сделано все очень просто:
софт создает ключи от имени того пользователя под которым его стартовали. структура ключей такова:
HKLM\SW\SoftName\_root_key_
HKLM\SW\SoftName\_root_key_\_subkey1_
HKLM\SW\SoftName\_root_key_\_subkey2_

_root_key_ & _subkeyX_ имеют нечитаемые имена
в каждом из _subkeyX_ есть несколько valuekey с такими же нечитаемыми именами.

после создания такой структуры, все пользователи получают следующие права на ветки:
_root_key_ - read only (_NO_ write, _NO_ enum, _NO_ delete)
_subkey1_ - read & write & delete (_NO_ enum)
_subkey1_ - read & write & delete (_NO_ enum)

вот собственно и все - пока кто-то не станет владельцем всей структуры веток никакой enum работать не будет... а чтоб стать владельцем на сколько я понимаю надо знать названия ключей (так?)...

книгу попробую найти - спасибо.

cb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 дек 2003, 21:09 
Не в сети

Зарегистрирован: 31 июл 2002, 14:01
Сообщения: 684
cb писал(а):
вот собственно и все - пока кто-то не станет владельцем всей структуры веток никакой enum работать не будет... а чтоб стать владельцем на сколько я понимаю надо знать названия ключей (так?)...

Я, вообще, думал (по аналогии), что право Enum дается не значению, а ключу (то есть, не файлу, а каталогу). Следовательно, если на ключ есть право Enum, то можно узнать список его подключей и значений. Получается, я думал неправильно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 дек 2003, 21:23 
Не в сети

Зарегистрирован: 31 июл 2002, 17:14
Сообщения: 16
2Dmit:

Цитата:
Я, вообще, думал (по аналогии), что право Enum дается не значению, а ключу (то есть, не файлу, а каталогу). Следовательно, если на ключ есть право Enum, то можно узнать список его подключей и значений. Получается, я думал неправильно?


вроде ты все правильно думаешь...
_root_key_ & _subkeyX_ это и есть ключи...
или я тебя не так понял?

cb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 дек 2003, 22:21 
Не в сети

Зарегистрирован: 20 окт 2002, 22:26
Сообщения: 151
cb
Софта я такого не встречал, а стать владельцем ветки - это тебе не поможет, ибо тот пользователь, который ветку создал, уже является ее владельцем, но у него, как ты говоришь, прога отнимает права.
То есть, надо просто написать прогу, которая вернет права на ветку обратно.

З.Ы. Если быть точным, то книга называется Programming Server-Side Applications for Microsoft Windows 2000, издательство MS Press. Есть еще русский вариант от RE MS Press. В электронном виде она существует, так что ищи...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 6 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB