Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder разных версий

Модерирует : ShIvADeSt

ShIvADeSt (26-06-2017 02:39): Продолжение тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=14667
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение раздела http://forum.ru-board.com/topic.cgi?forum=33&topic=6607&start=0  
Ссылки приветствуются.

См. также:

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:33 20-06-2007 | Исправлено: XPerformer, 14:41 24-10-2013
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G787
Да. Всё так. Веселья не прибавляет.
Но это не мои личные юзеры. Вы будете удивлены, как и я, что это - 90% американских юзеров!
Это стало теперь проблемой для меня...
A по сути:
 я читал, что в системе всегда существует администратор под user's name => System
 
Даже, если ни у кого из пользователей нет прав Администратора, всё равно можно выполнить программу с правами админа. Полагаю, что под правами System.
Ежели это так, то надо сделать конкретную реализацию, как сделали австралийцы в своём апдейтере. Теперь проблема ясна полностью?
Ежели есть желание, помогите добить её.

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 14:07 09-01-2011 | Исправлено: lodyr, 14:09 09-01-2011
ValidolX

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
в системе всегда существует администратор под user's name => System

Есть
но опять таки, нужен юзер с правами админа чтоб работать с етим юзером
похоже вам надо чудо

Всего записей: 1713 | Зарегистр. 22-07-2001 | Отправлено: 14:45 09-01-2011
G787



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот на днях поигрался с VGScene так сказать в ознакомительных целях и у меня осталось стойкое впечатление что компонентики сырые.  
 
Это у меня у одного такое впечатление или их просто нужно осваивать долго ?

Всего записей: 1035 | Зарегистр. 04-12-2005 | Отправлено: 16:27 09-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G787
У меня тоже осталось такое впечатление после ихней демки. Хотя ничего удивительного, учитывая объем работ.
 
lodyr
А для чего конкретно это нужно? Если для инсталлятора, то сделайте правильный манифест, делов то. Для всего остального делаете либо отдельный модуль с манифестом, либо сервис, либо создаете в инсталляторе нового пользователя с нужными правами. Но последнее это почти изврат, который кажется кроме VMWare никто не применяет.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:39 10-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемый Frodo_Torbins!
Спасибо, что откликнулись на мою проблему!
Знаю вас, как очень толкового программиста. И не только по этому форуму

Цитата:
А для чего конкретно это нужно?  

1. для инсталлятора
2. для работы самой программы

Цитата:
 Если для инсталлятора, то сделайте правильный манифест, делов то.  

Не скажу, что "делов то". Дело в том, что я использую инсталлятор "Аструм", у которого уже предусмотренна такая опция.
Цитата:
* Support for Windows 7  
* Support for non-admin installations in Windows Vista/7 ("Set permission level to asInvoker" setting on "System changes" page)  
 

Но, как выяснилось, для записи в ветку регистра HKLM, эта опция не работает. Инсталлятор выдаёт сообщение, что нет прав писать в регистр HKLM нужный ключ. Видимо, не смогли разрабы сделать "Set permission" как надо. А вы говорите "делов то". Может для вас это так и есть, но не для всех

Цитата:
 Для всего остального делаете либо отдельный модуль с манифестом, либо сервис

Меня устраивает второй вариант - служба/сервис. Так реализовали это автралийцы. Они устанавливают и запускают службу. Но я пока не знаю, как это реализовать на практике в коде для Делфи.
Если можно, то помогите мне. Предлагаю через ПМ. Сделаем рабочий вариант и затем выложим это сюда.  
 
 

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 18:40 10-01-2011 | Исправлено: lodyr, 18:42 10-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Эм, решение с манифестом как раз и заключается в том, чтобы перед началом инсталляции потребовать у пользователя пароль админа. Без этого никакого легального (и не блокируемого антивирусами) способа записи в HKLM напрямую нету. Ну а получив права, создать для себя постоянную лазейку уже не очень сложно. К примеру с помощью тех же сервисов, вот кстати неплохая статья: Создание служб Windows в Delphi с использованием VCL. Так что минимум один раз потребовать у пользователя логин админа все же придется.
Единственная лазейка, которая позволяет этого не делать - использование цифровых сертификатов и подписывание приложений. Но, что бы установить в систему свой сертификат, опять же нужны права админа. А что бы использовать один из уже установленных - деньги (кажется минимум 100$). Хотя тут я не уверен - слабо разбираюсь в этих тонкостях.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:18 10-01-2011 | Исправлено: Frodo_Torbins, 21:20 10-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Спасибо за ссылку на статью по службам. Прочту. А пока, кроме MSDN, я читаю всё, что попадается на эту тему. В основном это американская теоретическая лабуда и рассуждения типа
 http://blogs.msdn.com/b/aaron_margosis/archive/2004/07/24/193721.aspx
Их командный файл имеет много  изъянов и у меня на Win7 вообще не отработал.  
Уже голова опухла читать все эти теоретические измышления. Хоть бы 1 толковый пример найти.
Хочется реализовать такую логическую схему:
1. Проверка прав юзера
  а. если админ, то идём дальше без дополнительных действий
2. запоминаем права юзера и меняем их на админа
........   выполняем нашу программу  ..............
3. восстанавливаем права юзера  
 
Как прочту и переварю всё это, обращусь к вам(пока через ПМ) за дальнейшей помощью
 
 
 
Добавлено:

Цитата:
решение с манифестом как раз и заключается в том, чтобы перед началом инсталляции потребовать у пользователя пароль админа. Без этого никакого легального (и не блокируемого антивирусами) способа записи в HKLM напрямую нету.  

Меня мучит вопрос, а как же тогда реализовали все операции, в том числе и записи в HKLM напрямую, австралийцы в своём апдейтере? Он ни кого ни о чём не спрашивает и делает всё,что вы пожелаете?
Не могли бы вы, набросать пока пример с манифестом, чтобы хотя бы инсталлятор (аструм) отработал? Буду очень признателен.

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 22:53 10-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
В статье, на которую вы дали ссылку, по-моему описана примитивная версия UAC. И судя по дате и месту публикации, вполне возможно, что именно она стала его предшественницей.
Что касается вашей проблеммы, то я бы вам рекомендовал просто не писать в HKLM.
К примеру Google Chrome большой долей своей популярности обязан тому, что для установки не требует админских прав. Конечно это значит, что он даже в Program Files ничего записать не может. Ну и ничего, живет себе в C:\Users\Vasja\AppData\... и горя не знает. Офисные работники, которые обычно работают под ограниченными учетками от него просто в восторге.
Или VMWare. Они специальный продукт создали - ThinApp. Очень интересная штуковина, в том числе и для программистов, которые используют сторонние библиотеки, требующие прав администратора.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:21 10-01-2011 | Исправлено: Frodo_Torbins, 00:08 11-01-2011
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, может кто использует ZEOS Database Objects - поделитесь впечатлениями, и ищо - знаю что нет версии для Delphi XE - пробовал я сам подделать 7 альфа версию под XE - не получилось, если кто подогнал - поделитесь плиз сабжем.

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 23:47 10-01-2011
ValidolX

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Идея в студию - попробуйте промониторить чего ж такого делают австралийки через ProcMon утилиту

Всего записей: 1713 | Зарегистр. 22-07-2001 | Отправлено: 23:58 10-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Цитата:
Меня мучит вопрос, а как же тогда реализовали все операции, в том числе и записи в HKLM напрямую, австралийцы в своём апдейтере?
Для установки сервиса у меня потребовали права. А без него обновление проги в Program Files невозможно. Так что никакими чудодейственными приемами они похоже не пользуются.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 00:08 11-01-2011 | Исправлено: Frodo_Torbins, 00:09 11-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins

Цитата:
В статье, на которую вы дали ссылку, по-моему описана примитивная версия UAC

В сообщениях этого блога есть модифицированные версии, даже переделанные в EXE-файл.

Цитата:
Jürgen Barthel  
7 Mar 2006 4:42 PM #  
Have written a little tool based on Arons idea.  
Comments please here or to fli4l@online-barthel.de  
hxxp://www.online-barthel.de/Download/makemeadmin/MakeMeAdmin.exe (ссылка уже дохлая)
 
Gabor  
19 Jun 2006 2:05 PM #  
A new project has been just launched recently called sudoWn. It is based on the original MakeMeAdmin way but it is developed further for desktop PC users. You can find the project page hxxp://sudown.mine.nu (ссылка тоже уже сдохла)

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

Цитата:
Что касается вашей проблеммы, то я бы вам рекомендовал просто не писать в HKLM.

Отпадает. Я обдумывал эту ситуацию. Тогда моя программа(не вдаваясь в детали) сильно потеряет в защите, которую я сам разработал и реализовал.
Насчёт австралийцев.

Цитата:
Для установки сервиса у меня потребовали права.  

Могу согласиться с положением, что  

Цитата:
Так что минимум один раз потребовать у пользователя логин админа все же придется.

На это можно согласиться. Но всё равно, нужно попытаться сделать службу(как у них), которая автоматом запускается при запуске уже установленной программы и дает права админа. Надо понять, как установленная служба у них так работает? Т.е. что для этого надо?
 
 
Добавлено:
ValidolX

Цитата:
 попробуйте промониторить

Думаю, это ни чего не даст. Иначе и другие бы сделали такую же и проблема снялась бы..

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 03:28 11-01-2011 | Исправлено: lodyr, 03:39 11-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Ихняя служба запускается при старте системы от имени пользователя System. Благодаря этому она имеет права на все. Ну а далее они просто отправляют этой службе запрос на выполнение определенных действий.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:10 11-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Я это предполагал, когда упоминал user's name => System.
Именно так мне и надо сделать. Я хочу пойти по этому пути. Теперь надо докопать, как это сделать в коде Делфи. Если есть идеи и конкретные намётки, какие функции использовать для реализации логической схемы:  

Цитата:
1. Проверка прав юзера  
  а. если админ, то идём дальше без дополнительных действий  
2.отправляем этой службе запрос на выполнение определенных действий.

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

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 13:35 11-01-2011 | Исправлено: lodyr, 14:40 11-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Код проверки прав: http://www.delphipraxis.net/632305-post.html#730030
Всегда использовать службу было бы проще. Хотя теоретически возможна ситуация, когда она не будет запущена.
Практическая реализация это конечно самая сложная часть. Ссылку на одну статью я уже давал. Для организации взаимодействия можно использовать сокеты - вторая ссылка. Возможно еще придется с правами файлов разбираться, и прочей безопасностью.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:58 11-01-2011 | Исправлено: Frodo_Torbins, 16:11 11-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Спасибо за инфу. Буду разбираться дальше, как сделать сиё творение практически.  
А пока нашли временный выход.
здесь
1. http://johnnycoder.com/blog/2008/11/10/run-cmdexe-as-local-system-account/
2. http://alieneyes.wordpress.com/2006/10/23/how-to-gain-access-to-system-account-the-most-powerful-account-in-windows/
3. http://www.tech-recipes.com/rx/1288/how-to-run-applications-in-the-local-system-account-lsa/
4. http://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx
 
ссылка на скачку
hччp://download.sysinternals.com/Files/PsTools.zip
-------------------
Забыл сказать. Вы писали, что

Цитата:
В статье, на которую вы дали ссылку, по-моему описана примитивная версия UAC
Не совсем так. Ведь в Win XP нет UAC, а схема с разделением прав на админа и стандарт есть. Это наш случай. Нас долбит это разделение прав.
 
А UAC появился позже, в Vista, как дополнение прав пользователя. Он срабатывает даже с правами админа, если его не отключить. Microsoft создала инструмент для контроля выполняемых операций в системе для пользователя с установленными для него правами, включая админа. Это, на их взгляд, улучшило и дополнило управлением Политиками в системе (Local Security Policy). На мой взгляд, они просто мечутся от бессилия залатать бреши в Windows, перекладывая свои проблемы на пользователей этой самой Windows. Ведь самая лучшая защита от вредоносных прог. - это совсем не включать комп.
Но такого совета они дать не могут. Вот от этого и все проблемы с разделением прав и группой политик.
 В Win7 он получил дополнительный регулятор - "ползунок", с помощью которого можно выставить уровень "опастности" для системы. Так? Но это нам не интересно. Копаем в сторону создания службы.

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 10:12 12-01-2011 | Исправлено: lodyr, 12:24 12-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Вариант с использованием уже готовой службы мне нравится. Вот только похоже psexec устанавливает и удаляет свою при каждом запуске. То есть каждый раз будет требовать прав админа. Возможно его можно настроить, или может в интернете найдется другая подобная тулза, без этого недостатка.
 
По поводу UAC я имел ввиду, что идея создать эту фичу должна была как то появиться. Возможно она появилась у инженеров майкрософта как раз после прочтения той статьи.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:53 12-01-2011 | Исправлено: Frodo_Torbins, 11:57 12-01-2011
lodyr



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins

Цитата:
Вариант с использованием уже готовой службы мне нравится.

А мне нет. Хотя бы потому, что в "SYSINTERNALS SOFTWARE LICENSE TERMS"

Цитата:
You may not:
* transfer the software or this agreement to any third party; or
* use the software for commercial software hosting services.

 
 Хочу сделать сам, чтобы было всё под контролем. Учесть различные ситуации, кототые могут возникнуть, например, как вы пишете

Цитата:
То есть каждый раз будет требовать прав админа.

В варианте запуска C:\PsTools\psexec -i -s C:\прога.exe
она не должна ничего спрашивать, т.к.  
параметр: -s
 запускает процесс из системной учетной записи.
 
 Но всё равно, хочется один раз установить свою и забыть о всех возможных/непредвиденных проблемах. Если добьём это, то, я думаю, многим пригодится готовое решение в исходных кодах Делфи.
 

Всего записей: 710 | Зарегистр. 06-02-2005 | Отправлено: 12:23 12-01-2011 | Исправлено: lodyr, 12:58 12-01-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lodyr
Цитата:
В варианте запуска C:\PsTools\psexec -i -s C:\прога.exe
она не должна ничего спрашивать, т.к.  
параметр: -s
 запускает процесс из системной учетной записи.  

Если запускать от обычного пользователя, то у меня она пишет "Couldn't install PsExec service: Немає дозволу на доступ."

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:05 12-01-2011
zerofer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите можно кодом работа с сертификатами на сайтик нужно зайти ,сейчас юзаю синапс захожу на первую страницу без проблем а дальше никак так как просит ключик ,может был у кого опыт поделитесь что то ничего не нашел в сети толкового.

Всего записей: 124 | Зарегистр. 12-10-2008 | Отправлено: 14:51 12-01-2011
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder разных версий
ShIvADeSt (26-06-2017 02:39): Продолжение тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=14667


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru