Получение привилегий в Vista

Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.

Модератор: gaidar

Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Получение привилегий в Vista

Сообщение looking » 01.02.2009 (Вс) 17:00

Как в Windows Vista поместить в реестр в автозагрузку (ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) свою программу, дистрибутив которой имеет файл манифеста с правами "highestAvailable", так, чтобы "User Access Control" при загрузке операционной системы не блокировал запуск программы? :?:
Последний раз редактировалось looking 04.02.2009 (Ср) 18:52, всего редактировалось 1 раз.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Получение привилегий в Vista

Сообщение tyomitch » 01.02.2009 (Вс) 21:45

Естественно, что никак. В этом весь смысл UAC.
Сделай из своей проги сервис.
Изображение

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 01.02.2009 (Вс) 22:20

А каким-же тогда образом обходят UAC иные программы, установленные в Vista?
Ответ "никак" - явно неверен! А взять программу NeoSpy. Как они-то сделали, начиная с версии 2.7?
:?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Получение привилегий в Vista

Сообщение Williams » 04.02.2009 (Ср) 17:03

looking писал(а):А каким-же тогда образом обходят UAC иные программы, установленные в Vista?
Ответ "никак" - явно неверен! А взять программу NeoSpy. Как они-то сделали, начиная с версии 2.7?
:?


Можно еще создать сервис, с которым твоя прога будет общаться через IPC, и вынести в него весь функционал требующий прав админа.
И вы думаете, что вас оставят в живых после прочтения этого поста?

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 04.02.2009 (Ср) 18:50

Williams писал(а):
looking писал(а):А каким-же тогда образом обходят UAC иные программы, установленные в Vista?
Ответ "никак" - явно неверен! А взять программу NeoSpy. Как они-то сделали, начиная с версии 2.7?
:?


Можно еще создать сервис, с которым твоя прога будет общаться через IPC, и вынести в него весь функционал требующий прав админа.


Я и подумать не мог, что служебные программы в Vista, а также NeoSpy, Антивирус Касперского и т.д. работают как сервисы! И думаю, что правильно не мог подумать. Williams, спасибо за отклик, но я просил помощи в рамках условий из моего вопроса. А что такое IPC?

_______________________________________________
И не было бы несчастья, да счастье помогло...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Получение привилегий в Vista

Сообщение tyomitch » 04.02.2009 (Ср) 19:42

О каких служебных программах Висты речь?
Разберёмся вместе, как они работают.
Изображение

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 06.02.2009 (Пт) 13:03

tyomitch писал(а):О каких служебных программах Висты речь?
Разберёмся вместе, как они работают.


Tyomitch, прошу извинить за двухдневное молчание - разъездной харакетр работы.
Написав "служебные" программы, наверное, ввёл в заблуждение. Это не те, которые в "Пуск-Программы-Стандартные-Служебные", а те, которые поставляются с OS, например, Paint, Calc, Notepad. А кроме того, взять игры, а также упоминавшиеся мной AVK, NeoSpy. Почему эти программы на Viste запускаются без подтверждения? Не "сервисы" же всё это! Наверняка системой ставится метка типа "свой-чужой", скорее всего в реестре. И способ этот стал известен сторонним разработчикам. Или все они покупают сертификаты? :wink:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Получение привилегий в Vista

Сообщение tyomitch » 06.02.2009 (Пт) 13:35

looking писал(а):Написав "служебные" программы, наверное, ввёл в заблуждение. Это не те, которые в "Пуск-Программы-Стандартные-Служебные", а те, которые поставляются с OS, например, Paint, Calc, Notepad. А кроме того, взять игры,

Они все работают без элевации. Им нечего подтверждать при запуске.

looking писал(а):а также упоминавшиеся мной AVK, NeoSpy. Почему эти программы на Viste запускаются без подтверждения?

Их у меня нету, чтобы проверить.

looking писал(а):Не "сервисы" же всё это!

Откуда такая уверенность?

looking писал(а):Наверняка системой ставится метка типа "свой-чужой", скорее всего в реестре. И способ этот стал известен сторонним разработчикам. Или все они покупают сертификаты? :wink:

Стандартные программы, требующие элевации (regedit, mmc и т.п.), помечены цифровой подписью. Ты такую не подделаешь.
И все они, всё равно, выдают предупреждение при запуске. (Не такое, как для сторонних программ, но всё равно выдают.)
Изображение

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 06.02.2009 (Пт) 14:03

looking писал(а):Наверняка системой ставится метка типа "свой-чужой", скорее всего в реестре. И способ этот стал известен сторонним разработчикам.

Исключено. Грош цена была бы программерам майкрософт и всей их защите в таком случае.

looking писал(а):Или все они покупают сертификаты? :wink:

Ну у AVK точно сертификат.
label:
cli
jmp label

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 06.02.2009 (Пт) 18:25

Ну, если Вы правы, значит, с появлением Vista пришёл конец свободному программированию. Программирование становится корпоративным. Думаю, что не каждый программист имеет возможность или целесообразность приобрести сертификат. Ведь сколько людей пишет программы FreeWare? А пользователю не понравится всё время подтверждать запуск программы, особенно при добавлении её в автозагрузку! Неужели конец свободному программированию? Где же выход?
P.S.: У кого-нибудь запуск Calc.exe, Paint.exe и т.п. требует подтверждения?... Тоже цифровая подпись?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Получение привилегий в Vista

Сообщение tyomitch » 06.02.2009 (Пт) 19:27

Дубль два: они все работают без элевации. Им нечего подтверждать при запуске.
Запусти regedit и насладись предупреждением от стандартной проги.
Изображение

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 06.02.2009 (Пт) 21:04

looking писал(а):Неужели конец свободному программированию? Где же выход?

А зачем тебе highestAvailable?
Что ты такого делаешь своей софтиной, что тебе нужны такие права?
label:
cli
jmp label

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Получение привилегий в Vista

Сообщение Williams » 06.02.2009 (Пт) 21:43

iGrok писал(а):
looking писал(а):Неужели конец свободному программированию? Где же выход?

А зачем тебе highestAvailable?
Что ты такого делаешь своей софтиной, что тебе нужны такие права?

Вирусы пишет наверное...

looking, максимум что дает сертификат, это менее броское окно запроса элевации
И вы думаете, что вас оставят в живых после прочтения этого поста?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Получение привилегий в Vista

Сообщение tyomitch » 06.02.2009 (Пт) 23:41

К слову: можно создать COM-компонент; зарегистрировать его в DCOM, чтобы инстанциировался от имени LocalSystem; и поиметь через это элевацию до полных локальных прав -- круче, чем у локального админа -- безо всяких запросов.
Сеть под такой элевацией будет недоступна, ессно.

Хотя геморроя тут не меньше, чем с написанием сервиса, а гибкости меньше.
Изображение

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 07.02.2009 (Сб) 9:04

Williams писал(а):
iGrok писал(а):
looking писал(а):Неужели конец свободному программированию? Где же выход?

А зачем тебе highestAvailable?
Что ты такого делаешь своей софтиной, что тебе нужны такие права?

Вирусы пишет наверное...

looking, максимум что дает сертификат, это менее броское окно запроса элевации


Не оскорбляйте меня подозрениями в вирусописании! Не хотел откровенничать, но... Написал недавно программу для защиты от троянцев, так как на работе (дюжина компьютеров, часть в локальной сети) просто достали зловредные программы, растпространяющиеся с флэшками. Папка Recycler, файлы amvo0.dll, ntde1tect.com, cssrss.exe, kdlco.exe и подобные им, часто из бессмысленных букво-цифросочетаний в названии, как правило, являющиеся руткитами. Вот и пришлось написать программку, отслеживающую появление нового диска в системе, блокирующую автозапуск и автовоспроизведение, удаляющую файлы Autorun.inf и позволяющую заодно безопасно отключать/извлекать флеш-устройства/оптические диски. Естественно, программа нужна в автозагрузке. Всё бы хорошо, но на ноутбуке стоит Vista... С данной OS работал мало, поэтому понял не сразу, что моя программка для Vista просто не нужна! Но интерес на будущее, как всё же поместить программу (не обязательно эту), в автозагрузку, остался. А highestAvailable позволяет программе менять значения реестра в ключе HKLM\SOFTWARE, то есть и ставить программу в автозагрузку. Вот и вся практическая сторона моего вопроса.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 07.02.2009 (Сб) 12:14

looking писал(а):А highestAvailable позволяет программе менять значения реестра в ключе HKLM\SOFTWARE, то есть и ставить программу в автозагрузку. Вот и вся практическая сторона моего вопроса.

Ну вообще сама проблема решается полным отключением автозагрузки флешек, дисков и прочего.

А конкретно твоя - с автозагрузкой - решается по другому. Сама программа делается без highestAvailable, и спокойно загружается, будучи помещённой в автозагрузку.

А перед помещением программы в автозугрузку( перед установкой такой настройки ) нужно делать элевацию - получать права.
Тогда пользователю понадобится разрешать запуск только один раз - в момент задания такой настройки.
label:
cli
jmp label

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 07.02.2009 (Сб) 12:51

Почему бы просто не добавить программу в автозагрузку шедулером с правами local system?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 08.02.2009 (Вс) 15:58

ANDLL писал(а):Почему бы просто не добавить программу в автозагрузку шедулером с правами local system?

Потому что довавить программу в автозагрузку нужно программно:!:

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 08.02.2009 (Вс) 16:02

iGrok писал(а):
looking писал(а):А highestAvailable позволяет программе менять значения реестра в ключе HKLM\SOFTWARE, то есть и ставить программу в автозагрузку. Вот и вся практическая сторона моего вопроса.


... Сама программа делается без highestAvailable, и спокойно загружается, будучи помещённой в автозагрузку. А перед помещением программы в автозугрузку( перед установкой такой настройки ) нужно делать элевацию - получать права. Тогда пользователю понадобится разрешать запуск только один раз - в момент задания такой настройки.


А можно поподробнее? Я сначала пробовал запустить программу без манифеста, а затем с манифестом с низшими правами. UAC никак не реагирует, но и автозагрузка в реестр не добавляется! А каким образом после этого сделать элевацию (то есть повысить права)?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 08.02.2009 (Вс) 18:16

looking писал(а):
ANDLL писал(а):Почему бы просто не добавить программу в автозагрузку шедулером с правами local system?

Потому что довавить программу в автозагрузку нужно программно:!:
Ну добавляй программно:!:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 08.02.2009 (Вс) 22:50

looking писал(а):А каким образом после этого сделать элевацию (то есть повысить права)?


Как один из вариантов, сделать установку/снятие ключа автозагрузки в sub main по ключу из командной строки (Command$).
Далее, тогда когда нужно изменить параметр запускать себя же примерно таким вот образом:
ShellExecute 0, "runas", sExeName, sParamString, sExePath, SW_SHOWNORMAL
Где sExeName, sExePath - имя и путь к папке с экзешником, sParamString - что-то типа "/installautorun" или "/deinstallautorun".
label:
cli
jmp label

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 09.02.2009 (Пн) 11:04

iGrok А ты пробовал?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 09.02.2009 (Пн) 13:55

ANDLL писал(а):iGrok А ты пробовал?

Честно говоря, нет.
Но этот способ в одном из MSовских блогов был описан.
label:
cli
jmp label

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 09.02.2009 (Пн) 14:13

Значит тебе стоит подучить свой английский, что бы правильно понимать что пишут в блогах.
Потому что совет совсем не в кассу
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Получение привилегий в Vista

Сообщение Денис » 09.02.2009 (Пн) 15:28

Не знаю, как другие программы, а Касперский при установке на комп устанавливает себя в качестве службы запускаемой от лица SYSTEM. Графическая часть программы не делает ничего, кроме как отражает результат работы службы. Поэтому и не нужна элевация. Так что вопрос решается написанием службы, как и было сказано выше!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 09.02.2009 (Пн) 18:32

ANDLL писал(а):Значит тебе стоит подучить свой английский, что бы правильно понимать что пишут в блогах.
Потому что совет совсем не в кассу

То есть сам ты такой вариант пробовал, он не работает или же делает не то, что нужно, и ты имеешь нам об этом сообщить?
Или тебе он только кажется не работающим, потому что ____________(нужное вписать).

Мой английский далёк от идеала, не спорю. И тем не менее, не тебе судить насколько. Мне же его для понимания смысла прочитанного вполне хватает.

Собственно говоря, только что проверил на Висте из-под юзера и из-под админа. Всё работает как надо.
Под юзером просит ввести админский пароль, после чего запускается копия программы с админскими правами.
Под админом предлагает "разрешить" запуск.

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

Смотреть там, в комментах к основной статье:
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx

З.Ы. Тестил на XP Pro. Там делает совсем не то, что нужно. Предположительный выход - смотреть версию ОС перед тем, как делать элевацию.
Не тестил на системе с отключенным UAC.
label:
cli
jmp label

looking
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.02.2009 (Вс) 16:54

Re: Получение привилегий в Vista

Сообщение looking » 09.02.2009 (Пн) 19:54

ANDLL писал(а):
looking писал(а):
ANDLL писал(а):Почему бы просто не добавить программу в автозагрузку шедулером с правами local system?

Потому что довавить программу в автозагрузку нужно программно:!:
Ну добавляй программно:!:

Так шедулером или программно? Если шедулером, то его многие продвинутые пользователи отключают, а если программно, то в этом-то весь и вопрос. А добавлять в Планироващик заданий (так он по-русски называется?) программно - та ещё задача! Как будет время, попробую способ с сервисом, а пока уезжаю на несколько дней...
Спасибо всем за отклики! Результаты изыскания изложу.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 09.02.2009 (Пн) 20:16

Под админом предлагает "разрешить" запуск.
То есть у тебя проблема не с английским а с русским? Автор спрашивал как сделать так что бы никто не предлагал разрешить запуск.
Так шедулером или программно?
А по твоему шедуллер это "аппаратно"?
то его многие продвинутые пользователи отключают,
Sucks to be them.
А добавлять в Планироващик заданий (так он по-русски называется?) программно - та ещё задача!
:D Let me google for you?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Получение привилегий в Vista

Сообщение iGrok » 09.02.2009 (Пн) 20:51

ANDLL писал(а):
Под админом предлагает "разрешить" запуск.
То есть у тебя проблема не с английским а с русским? Автор спрашивал как сделать так что бы никто не предлагал разрешить запуск.

Проблема с русским не у меня. Перечитай пожалуйста ВНИМАТЕЛЬНО мои посты в этом топике и ответные посты автора. И поймёшь к чему именно был предложен этот способ.
label:
cli
jmp label

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Получение привилегий в Vista

Сообщение ANDLL » 09.02.2009 (Пн) 23:02

Да? Ну тогда ладно. Думал это предлагалось как ответ на поставленный (вверху) вопрос...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

След.

Вернуться в Раздел для Профессионалов

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

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

    TopList  
cron