Удалить ключ в реестре без прав администратора У меня такая проблема, делаю программу, которая каждую минуту вносит в реестр кое, какие данные в бинарном виде… что-то вроде Firewall(а). Так вот, в любой момент и любой пользователь(Хакер или …) может изменить права к этому ключу или разделу. Теперь я решил организовать работу с реестром из под драйвера, так как я не когда не работал с реестром из драйвера и хотел бы узнать: Какие ф-ций существует для полного доступа к реестру из под драйвера?
Rihter А тебе не кажется, что вместо того чтобы задавать глупые вопросы, надо читать RTFM. И еще желательно думать, и думать ГОЛОВОЙ!
DedMazday А тебе не кажется, что я задал вопрос, думая головой! Ты лучше ответь, нормально, чем отвечать глупыми ответами!
to Rihter .. Странный ты . Вначале пишешь : "Удалить ключ в реестре без прав администратора" .. а потом "Теперь я решил организовать работу с реестром из под драйвера.." Если нет прав админа, то и драйвер не запустишь ! А посмотреть туториалы Four-F несудьба ? (для особо одаренных http://www.wasm.ru/article.php?article=drvw2k10 ) И после всего этого кричать, что ты думал головой ???
Скорее не головой, а тем что с другого конца тела... Гнать вас ламеров надо с васма метлой, чтобы духу вашего здесь небыло.
Ах, вот ты какой, да ты сложить 2+2+2 не сможешь... Ответь мне на вопрос Сколько именаторов, ядра, нужно что бы разделить ядерною ф-цию, как систему счисление, в многозадачности... Если ты знаешь, то ты не ламер, инче ты жалкое существо, которое знает чучуть и голосит о том что он знает. Таких жалких надо гнать с лица земли...
TermoSINteZ Да это я так, что бы привлечь внимание... На самом деле, мне надо узнать, могу ли я из драйвера записать значение, в ключ, который защищен правами админа?
какой-то для меня непонятный смысл, таит сие предложение. Защищён правами админа - это как? у тебя же тоже вроде бы есть права...
Спасибо за вопрос, рассмешил Я конечно читал подобные отжыги на сайтах с анекдотами, но если ты считаешь это вопросом, то мне тебя жаль (так как твой случай неизлечим). Не буду переходить к личным оскорблениям, а просто попытаюсь разьяснить кто такой ламер и чем он отличается от начинающего. Признаки ламера: 1) Ламер ничего не знает, но считает что знает все. 2) Ламер никогда не пользуется мануалами и поисковиками, считая что для ответов на его вопросы есть форумы, на которых ему все просто обязаны помочь. 3) Ламер ждет помощи в виге готового решения, при этом он не пытается найти решение сам. 4) Ламер не способен учиться, и поэтому глупые вопросы прекращаются только когда его с форума пошлют подальше, либо просто забанят (если он не понимает по хорошему). 5) На ответы вроде "читай RTFM" или "ищи в google" он немедленно огрызается и говорит что он это знает лучше всех (видимо считает, что ради него все должны бросить дела и начать постить инфу из MSDN). Признаки начинающего: 1) Начинающий знает мало, но не отрицает этого. 2) Начинающий способен учиться сам, и находить ответы на свои вопросы в мануалах. 3) Если он получает ответ RTFM - то идет и читает мануалы. 4) Если он задает вопрос, то пытается обьяснить что он сам сделал для решения этого вопроса, и какае проблемы перед ним возникли. 5) Начинающий требует совета в решении вопроса, а не законченого разжеваного по полочкам решения. 6) Начинающий любит сам помагать давая ответы на те вопросы, в которых он что-либо понимает. В общем, признаки ламера я изложил достаточно четко, надеюсь многие смогут сделать для себя выводы. И напоследок: Ламер - это не уровень знаний, это диагноз.
DedMazday Ну, это ты наверное самого себя изложил есть такая пословится, по себе людей не судят... В щет Google.[...] и RTFM я думаю ответ на такой простой вопрос не найдешь... Хотя к сожилению, я мало знаю о нем и считаю себя ламером только в этой области, а начинающим в области "Разработка драйверов". Давай не будем, всякой ерундой заниматся если знаешь ответь нормально, иначе просто не отвечай. Прошу очень
dead_body Я говорил про firewall, а также о том, что любой пользователь (Хакер/...) может самостоятельно, запретить в него запись, и вот тогда моя программа просто обломается
Ок, отвечу. Итак, допустим я не имею никакого представления как мне писать в реестр из драйвера. Что я буду делать? 1) Попробую поискать в яндексе. http://www.yandex.ru/yandsearch?text=%C7%E0%EF%E8%F1%FC+%E4%F0%E0%E9%E 2%E5%F0%EE%EC+%E2+%F0%E5%E5%F1%F2%F0&stype=www Вводим такой запрос и попадаем по первой ссылке на http://borland.xportal.ru/forum/printview.php?t=13120&start=0&sid=3957741e6d0ad538a4c9290601e3e17d Читая то что мы нашли по ссылке, можно понять что есть несколько функций для работы с реестром из драйверов, это ZwOpenKey, ZwSetValueKey. Теперь идем в MSDN и ищем там ZwOpenKey и попадаем на http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Kerne l_r/hh/Kernel_r/k111_8583b145-a6be-4e4f-8e46-ca7d48b8a07f.xml.asp А тут тебе есть и список всех функций работы с реестром и их описание. Вот собственно это тебе и надо было сделать, чтобы не выглядеть ламером. Я думаю единственная причина по которой ты это не сделал - это лень и желание получить все готовое, а это уже симптом...
Надеюсь тебе не придется на пальцах растолковывать как изменить права доступа к ключю, подскажу лишь что их можно игнорировать установив флаг OBJ_KERNEL_HANDLE в структуре OBJECT_ATTRIBUTES при открытии ключа.
Rihter Может тебе стоит в WASM.COMMERCIALS создавать топики ? Если посмотреть в инфу ВАШЕГО юзера, то можно увидеть список тем, и если пройтись по этих темах,то можно увидеть текст типа "дайте мне такому хорошему пример ...", здесь форум, если хочешь получить ответ на вопрос попробуй сначала сам разобраться, или пости примеры которые не работают. DedMazday тебе показал как искать инфу.
Ребьзя, может вы где нибудь пересечётесь и морды друг другу набьёте ? <font color="red]первое и последнее предупреждение за мат</font><!--color-->
Rihter Хочешь научиться чему-то — создавай темы в WASM.BEGINNERS и учись. Но прежде последуй всё же советам DedMazday.
Что-то вы конкретно парнишу обосрали, нет бы ответить нормально. Значит по порядку: <li> Так вот, в любой момент и любой пользователь(Хакер или …) может изменить права к этому ключу или разделу. Не может. Что-то я не знаю таких функций, которые меняли права ключей или разделов. Другое дело перехват... <li> Теперь я решил организовать работу с реестром из под драйвера. А смысл? Другое дело перехват... <li> Какие ф-ций существует для полного доступа к реестру из под драйвера? Код (Text): NtCreateKey Creates or opens a Registry key. DDK NtOpenKey Opens an existing Registry key. DDK NtDeleteKey Deletes a Registry key. DDK NtDeleteValueKey Deletes a value. DDK NtEnumerateKey Enumerates the subkeys of a key. DDK NtEnumerateValueKey Enumerates the values within a key. DDK NtFlushKey Flushes changes back to the Registry on disk. DDK NtInitializeRegistry Gets the Registry rolling. The single parameter to this specifies whether its a setup boot or a normal boot. NtNotifyChangeKey Allows a program to be notified of changes to a particular key or its subkeys. NtQueryKey Queries information about a key. DDK NtQueryMultiplValueKey Retrieves information about multiple specified values. This API was introduced in NT 4.0. NtQueryValueKey Retrieves information about a specified value. DDK NtReplaceKey Changes the backing file for a key and its subkeys. Used for backup/restore. NtSaveKey Saves the contents of a key and subkey to a file. NtRestoreKey Loads the contents of a key from a specified file. NtSetInformationKey Sets attributes of a key. NtSetValueKey Sets the data associated with a value. DDK NtLoadKey Loads a hive file into the Registry. NtLoadKey2 Introduced in NT 4.0. Allows for options on loading a hive. NtUnloadKey Unloads a hive from the Registry. NtCompactKeys New to WinXP. Makes key storage adjacent. NtCompressKey New to WinXP. Performs in-place compaction of a hive. NtLockRegistryKey New to WinXP. Locks a registry key for modification. NtRenameKey New to WinXP. Renames a Registry key. NtSaveKeyEx New to WinXP. Saves the contents of a key and its subkeys to a file. NtUnloadKeyEx New to WinXP. Unloads a hive from the Registry. NtLoadKeyEx New to Server 2K3. Loads a hive into the Registry. NtUnloadKey2 New to Serer 2K3. Unloads a hive from the Registry. NtQueryOpenSubKeysEx New to Server 2003. Returns the keys opened beneath a specified key. Функции в конце описания которых написано DDK по идее должны быть в ntoskrnl.exe, остальные - NativeAPI (ntdll.dll) Другое дело перехват на уровне ядра... (задолбал уже наверное своим перехватом, но что делать, это жизнь; если перехват идет на уровне ядра, то уже хрен чем поможешь <li> На самом деле, мне надо узнать, могу ли я из драйвера записать значение, в ключ, который защищен правами админа? Можешь. Но чтобы про меня ничего плохого не подумали, повторюсь: у ключей, разделов etc. прав никаких НЕТ, другое дело если прога запустилась, когда работал обычный юзер, а не админ, то у нее нет достура в некоторые части раздела. Но эти права (привелегии) сравнительно легко получаются программным путем. Уф, вроде все. P.S. Может я не прав.
А в MSDN заглядывать не пытался? (RegSetKeySecurity). И зачем ты ему отвечаешь? Ты же видел какие он вопросы задает, и ответ на эти вопросы только вынуждает его спрашивать подобные глупости еще.
Наверное, чтобы я это прочитал )) Я где-то полгода назад такую инфу искал, так что Ctrl+C Ctrl+V - может еще пригодится ))