Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак получить повышенные привилегии в Vista? Найти похожие ветки
← →
@!!ex © (2010-04-23 19:25) [0]Есть KeyHook. Он норм работает.
Но не работает с IExplorer, т.к. у того привилегии выше.
Как получить достаточные привилегии для нормальноый работы хука?
Если я делаю авторан с правами админа, то прога вообще не запускается и уходит в список "отмененной автозагрузки".
Как бы запустить с повышенными правами? Пользователь вполне может нажать Yes на UAC, но я не понял как UAC вызвать...
← →
Конформист (2010-04-23 19:28) [1]
>
> @!!ex © (23.04.10 19:25)
>
> Есть KeyHook. Он норм работает.
> Но не работает с IExplorer, т.к. у того привилегии выше.
>
> Как получить достаточные привилегии для нормальноый работы
> хука?
>
> Если я делаю авторан с правами админа, то прога вообще не
> запускается и уходит в список "отмененной автозагрузки".
>
> Как бы запустить с повышенными правами? Пользователь вполне
> может нажать Yes на UAC, но я не понял как UAC вызвать..
Купить подпись за 399$ и подписать ПО. Вставить в манифест требование админа.
← →
@!!ex © (2010-04-23 19:33) [2]> [1] Конформист (23.04.10 19:28)
> Купить подпись за 399$ и подписать ПО.
Нее. Утилитка фриварная, денегь на нее тратить точно не буду...
> [1] Конформист (23.04.10 19:28)
> Вставить в манифест требование админа.
А можно поподробнее??
Я нашел как править манифест:
<security>
<requestedprivileges>
<requestedexecutionlevel level="requireAdministrator">
</requestedprivileges>
</security>
Но как его в приложение свое добавиьт - не понял. :(
← →
Игорь © (2010-04-23 19:39) [3]
> Но как его в приложение свое добавиьт - не понял. :(
Программа PE Explorer-> Application Manifest Wizard
← →
Конформист (2010-04-23 19:43) [4]
> @!!ex © (23.04.10 19:33) [2]
>
> > [1] Конформист (23.04.10 19:28)
> > Купить подпись за 399$ и подписать ПО.
>
> Нее. Утилитка фриварная, денегь на нее тратить точно не
> буду...
Без подписи с правами админа как сервис или с автозагрузки она на стартанёт при включенном UAC.
> А можно поподробнее??
http://ruminatedrumblings.blogspot.com/2008/03/vista-uac-manifest.html
и убрать все ссылки в программе на модуль xpmanifest, так как он заменяет твой манифест
Только с учетом вышесказанного без подписи взлетит только при ручном запуске и будет выдавать запрос на повышение привилегий каждый раз.
Как это обойти - добавить программу в политику доверяемых программ
http://blogs.techrepublic.com.com/window-on-windows/?p=635
отключить UAC
← →
Конформист (2010-04-23 19:46) [5]Еще как вариант запросить логин-пароль админа, сохранить их где-то (зашифрованными) и повышать привилегию той нити которая устанавливает хук.
Если уитилита не слишком популярна(менее 100000 установок) то секретность вполне удовлитворительна.
← →
Игорь © (2010-04-23 19:59) [6]
> Но не работает с IExplorer, т.к. у того привилегии выше.
Вообще то по идее у IExplorer привилегии ниже(LOW_INTEGRITY), а у админа выше(HIGH_INTEGRITY)
← →
@!!ex © (2010-04-23 20:45) [7]> [4] Конформист (23.04.10 19:43)
> Без подписи с правами админа как сервис или с автозагрузки
> она на стартанёт при включенном UAC.
А если сделать прогу, которая будет стартовать с обычными правами и пытаться запустить утилиту с правами админа?
Это прокатит?
← →
DVM © (2010-04-23 21:05) [8]
> @!!ex © (23.04.10 20:45) [7]
Зачем такой изврат? Такая прога уже есть - проводник называется, есть и консольная утилита RunAs, кажется, но что мешает программе самой запрашивать привилегии. Просто вставь в ресурс манифест, ресурс прилинкуй к программе и всего делов.
← →
DVM © (2010-04-23 21:07) [9]
> Конформист (23.04.10 19:43) [4]
> Без подписи с правами админа как сервис или с автозагрузки
> она на стартанёт при включенном UAC.
с автозагрузки нет, а как сервис стартанет как миленькая и без подписи при включенном UAC
← →
@!!ex © (2010-04-23 21:09) [10]> [8] DVM © (23.04.10 21:05)
> Просто вставь в ресурс манифест, ресурс прилинкуй к программе
> и всего делов.
И авторан не отработает.
← →
Конформист (2010-04-23 21:11) [11]
> @!!ex © (23.04.10 20:45) [7]
С автозагрузки, без подписи, нет. Програ должна задетектить интерактивный вход в систему пользователя (для возможности создания окна безопасности UAC, точное название не помню) а потом уже запускать.
Но если ты сам создаёшь токен безопасности CreateProcessWithLogonW LogonUserEx то можешь запускать что хочешь.
Еще проблема может быть что хук устанавливается а приложение с низкими привилегиями не может отправить сообщение процессу с высокими привилегиями.
Тогда вот ChangeWindowMessageFilter
← →
DVM © (2010-04-23 21:12) [12]
> @!!ex © (23.04.10 21:09) [10]
> И авторан не отработает.
Пусть ее планировщик запускает с нужными правами при входе в систему.
← →
@!!ex © (2010-04-23 21:13) [13]> [12] DVM © (23.04.10 21:12)
А как инсталятору сказать, чтобы он добавил задание планировщику?? Я вообще не в курсе, честно говоря..
← →
DVM © (2010-04-23 21:14) [14]
> @!!ex © (23.04.10 21:13) [13]
я никогда не делал, но у планировщика целый API есть, я даже где то для делфи находил класс-обертку.
← →
Конформист (2010-04-23 21:17) [15]
> DVM © (23.04.10 21:07) [9]
> с автозагрузки нет, а как сервис стартанет как миленькая
> и без подписи при включенном UAC
С каким SP тестировали?
← →
DVM © (2010-04-23 21:20) [16]
> Конформист (23.04.10 21:17) [15]
Windows 7 со всеми обновлениями.
Не одна, а даже несколько моих программ прекрасно работают как сервисы безо всяких подписей. Правами сервисы не обделены.
← →
@!!ex © (2010-04-23 21:22) [17]> [16] DVM © (23.04.10 21:20)
А как сервис инсталировать? Обычный инсталлятор не подойдет, как я понимаю...
← →
DVM © (2010-04-23 21:24) [18]
> @!!ex © (23.04.10 21:22) [17]
подойдет любой, у InnoSetup Это так делается для сервисов на делфи писанных:
[Files]
Source: ..\release\myserv.exe; DestDir: {app}; Flags: ignoreversion
[Run]
Filename: {app}\myserv.exe; Parameters: -install -silent; Flags: runhidden
← →
@!!ex © (2010-04-23 21:26) [19]> [18] DVM © (23.04.10 21:24)
должен быть запущен под админом естественно?
а как сказать Inno, чтобы он требовал права админа при запуске?
← →
DVM © (2010-04-23 21:27) [20]
> @!!ex © (23.04.10 21:26) [19]
> а как сказать Inno, чтобы он требовал права админа при запуске?
Для этого ничего делать не надо, все есть уже.
← →
Конформист (2010-04-23 21:27) [21]
> DVM © (23.04.10 21:20) [16]
>
>
> > Конформист (23.04.10 21:17) [15]
>
> Windows 7 со всеми обновлениями.
Под Vista Sp1 были проблемы без подписи.
← →
@!!ex © (2010-04-23 21:29) [22]> [21] Конформист (23.04.10 21:27)
> Под Vista Sp1 были проблемы без подписи.
Какие?
← →
DVM © (2010-04-23 21:31) [23]
> Под Vista Sp1 были проблемы без подписи.
>
>
Можно считать ошибкой, т.к. SP2 это убрал.
← →
@!!ex © (2010-04-23 23:24) [24]Так, вопрос, а сервису нужно манифест прикручивать, или он по дефолту имеет дофига прав?
← →
DVM © (2010-04-24 00:09) [25]
> а сервису нужно манифест прикручивать
не нужно
← →
Anatoly Podgoretsky © (2010-04-24 08:36) [26]> @!!ex (23.04.2010 23:24:24) [24]
Он по дефолту имее права SYSTEM, а это выше Administrator
← →
Anatoly Podgoretsky © (2010-04-24 08:36) [27]> @!!ex (23.04.2010 23:24:24) [24]
Повышение прав нужно только для установки сервиса.
← →
Anatoly Podgoretsky © (2010-04-24 08:37) [28]> DVM (24.04.2010 00:09:25) [25]
Смешно было бы если надо. Запрос неизветно к кому, в системе еще никто не залогинен, рабочего стола нет.
← →
Eraser © (2010-04-24 14:54) [29]> [21] Конформист (23.04.10 21:27)
не вводи народ в заблуждение.
← →
Игорь © (2010-04-30 10:29) [30]
> @!!ex ©
Под Vista и выше если нет прав администратора вызывает окно запроса прав, если изначально хочешь что бы требовал администратора то надо наверно прикручивать манифестuses ShellAPI;
var
SEI: TShellExecuteInfo;
begin
ZeroMemory(@SEI, SizeOf(SEI));
SEI.cbSize := SizeOf(TShellExecuteInfo);
SEI.Wnd := Handle;
SEI.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
SEI.lpVerb := PChar("runas");
SEI.lpFile := PChar("FileName");
SEI.nShow := SW_SHOWNORMAL;
if not ShellExecuteEx(@SEI) then
ShowMessage(SysErrorMessage(GetLastError));
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.07 c