Джон
просто
Администратор
Offline
Пол:
|
|
« : 10-03-2011 08:16 » |
|
Народ, кто-нить знает механизм, как семёрка определяет, что программе нужны, например, права администратора?
зы Прога компилируется без манифеста.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
zubr
Гость
|
|
« Ответ #1 : 10-03-2011 08:36 » |
|
Если программа пытается: 1. Что то писать в реестр 2. Модифицировать файлы в системных каталогах 3. Устанавливать или удалять сервисы, драйвера 4. Некоторые сетевые функции будут вызывать UAC 5. Программное изменение настроек планировщика заданий будет вызывать UAC 6. Вызов утилит типа At, Shtasks потребует админских прав.
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #2 : 10-03-2011 09:06 » |
|
Ок, объясню немного подробней.
Есть программа, которая находится в Program Files. Работает с файлами в ProgramData, пишет/читает в HKCU, отправляет мыло, работает с ZIP-архивами, работает с печатью и запускает другие проги через CreateProcess и ShellExecute. Эта программа НЕ требует админских прав. Теперь, одна из запускаемых программ - апдейтер, для проверки наличия обновлений. Простой экзешник-диалог, который тоже находится в Program Files. Вся его функциональность ограничивается: прочитать XML-файл, в котором находится адрес сервера с обновлениями, сгрузить информационный файл с данными об обновлениях, сравнить, сгрузить по необходимости ZIP-файлы и обновить (заменить файлы) текущую версию. Реестр используется только для хранения текущих настроек, например Proxy. Для работы с инетом используется wininet, но только HTTP.
И вот она требует админских прав. Я убрал (просто выбросил из кода) сначала всю кухню с инетом, потом с ZIP-ом, вспомогательные диалоги, потом вобще ВСЁ выбросил. Голый диалог. Никакой функциональности. Практически он ничем не отличается от вновь созданного диалога. Dependency Walker не показывает никакой разницы с контрольным приложением. Оба MFC-статики, юникод. И всё-равно семёрка спрашивает админский пароль. Запоминает она что-то? Или же всё-таки экзешник обладает каким-то свойством? Причём, запускать его не требуется, его иконка сразу дополняется щитом, чего явно не происходит с другими прогами.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 10-03-2011 09:46 » |
|
а если переименовать в setup.exe ? ))
помнится, виста делала так - если в имени есть "update" или "setup", то программа автоматом от администратора запускается
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #4 : 10-03-2011 10:08 » |
|
Лёш, ну нельзя же все проги назвать setup.exe. Собственно речь идёт об аргументации, те я хочу выяснить, действительно ли ей нужны админские права? Если да, то почему?
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
|
RXL
|
|
« Ответ #6 : 10-03-2011 12:42 » |
|
Думаю, что система просто запомнила его. Переименуй во что-нибудь другое и запусти еще раз.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #7 : 10-03-2011 13:24 » |
|
v2, это понятно. Остальные, запускаемые основной прогой, работают без проблем. А отладчик чем поможет? Или ты имеешь ввиду по винде дебаггером пройтись? Линки почитаю. Спасибо. Экзешник переименовать - делал. Не помогает.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
baldr
|
|
« Ответ #8 : 10-03-2011 13:36 » |
|
Джон, а ты устанавливал/копировал файлик под каким юзером? Какие права стоят на папку с файликом? Проверь все права, включая "Advanced".
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
v2
Помогающий
Offline
|
|
« Ответ #9 : 10-03-2011 13:38 » |
|
Невнимательно прочитал, - не понял, что прога твоя. > Остальные, запускаемые основной прогой с этого момента поподробнее
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #10 : 10-03-2011 15:47 » |
|
1.exe - основная, не требует админа Она запускает с помощью CreateProcess / ShellExecute (результат одинаковый) проги 2.EXE и 3.EXE. При запуске 3.EXE требуется ввести пароль админа. 1 и 2 ничего такого не требуют. Все проги мои. Компилятся UNICODE в 2003 студии. С++ MFC Static. Без файла-манифеста. Что ещё? Функции описал выше. Добавлено через 3 минуты и 13 секунд:Джон, а ты устанавливал/копировал файлик под каким юзером? Какие права стоят на папку с файликом? Проверь все права, включая "Advanced".
Папка Program Files - в которой пользователю делать нечего. А вот насчёт установки это мысль. Основная прога ставится инсталлером, а апдейтер я копировал туда вручную. Может это? Всё остальное у них одинаковое. В смысле что для проги 1 то и для всех остальных прог. Только способ помещения в папку разный. Посмотрю в этом направлении, но теперь уже завтра.
|
|
« Последнее редактирование: 10-03-2011 15:50 от Джон »
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
|