Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Защита папки   Найти похожие ветки 

 
DeadMeat ©   (2005-02-03 00:49) [0]

Здрассте граждане.
Такой вот вопросик. Как можно защитить папку, чтобы ее нельзя было открыть. Сразу говорю, что настройка политики не подходит, т.к. это тяжко. Потому что надо время от времени снимать защиту. Все это надо делать программно. Мысль - открыть ее с вариантом EXCLUSIVE. Но не выходит чета. Говорит ACCESS DENIED. Хотя раньше я точно помню, что так делал. Помню, потому что видел как админ ниче не мог сделать с этой папкой. Но вот не помню как я это делал... Да. Знаю.. Дырявая голова. Но вот поэтому вас тут и спрашиваю... Может есть еще способы?


 
Anatoly Podgoretsky ©   (2005-02-03 00:55) [1]

Значит нормальные пути это тяжело, а абнормальные легко?


 
Набережных С. ©   (2005-02-03 06:45) [2]

>Помню, потому что видел как админ ниче не мог сделать с этой папкой.

Плохой админ. В шею.


 
DeadMeat ©   (2005-02-03 10:36) [3]

Так.. Ладно. Объясняю ситуацию в целом. Вчера просто очень спать хотел.
Есть программа (не моя и автора не достать). Для нашего шефа довольно ценная. Он очень за нее тресется. Это программа тестирования. Ее используют в одном из университетов. Так вот, надо ее защитить от копирования. Чтобы не смогли утащить. Я конечно могу настроить права так, чтобы она вообще не открывалась. Однако что делать на занятиях, когда ей пользуются студенты? Ведь надо ее запускать. Так вот я нашел такой выход. Назначаю права как выше описал, и делаю некий загрузчик. Этот загрузчик обладает правами на чтение. Т.е. его юзеры запускать могут. При его запуске, он запускает саму программу тестрования с правами администратора и далее она уже получает доступ к своим папкам. Все вроде бы как хорошо. И все даже работает. НО. Это все работает на WinXP_SP2 и на Win2k_SP0, т.е. без сервис пака. Поставили на Win2k_SP4 и все. Нифига не пашет. Бились дня 2. Как я понял - это сама программа глючит. Вылетает она. Любую другую так запускаем - все ок, а вот она не идет. Никакого результата. Сносить 9 систем из-за этого не хочется. Вот и я решил спросить у вас, как такое реализовать по проще. Моя следующая идея заключается в том, чтобы открыть папку с эксклюзивным доступом, а при появлении нужного нам процесса в системе, возвращать доступ на место. При закрытии этого процесса - опять закрывать...
Так вот поэтому я и спрашиваю вас тут. Чего мне делать...?


 
Reindeer Moss Eater ©   (2005-02-03 10:40) [4]

Напиши программу, которая запускает exe со скрытой сетевой папки.


 
BiN ©   (2005-02-03 10:49) [5]

>>DeadMeat ©

Самый надежный способ - сервер терминалов. Все остальное - от лукавого.

С уважением,


 
DeadMeat ©   (2005-02-03 10:52) [6]

В этом другая проблема.
На сервере стоит WinXP_SP2 (такая же как и на тех), так вот она не дает подключится более чем 10 пользователям к сетевому ресурсу. Чтобы я не делал - 10 хоть убейся. И главное другое. Если по ресурсу правой кнопкой -> доступ и там попытаться выставить максимально возможное число пользователей, то больше 10 не становится. А если тоже самое сделать через Computer Managment, то можно выставить хоть 80... Однако все равно больше 10 не идет.. Шеф человек упертый, и менять систему на сервере не хочет.


 
DeadMeat ©   (2005-02-03 10:53) [7]

Пока писал успели ответить еще...
Этот вариант тоже не прокатит. Т.к. см. выше насчет шефа. Да и в этой области у меня опыта нет. Не ставил никогда. Хотя хотелось очень. Хотя бы посмотреть как это и с чем..


 
Набережных С. ©   (2005-02-03 10:57) [8]

1. Что значит "вылетает"? Куда? С какой скоростью? Не сообщает ли, куда она и почему?
2. Если запускать оболочкой, работает?
3. Какая необходимость запускать под администратором? Почему не под активным юзером?


 
BiN ©   (2005-02-03 10:59) [9]

DeadMeat ©   (03.02.05 10:52) [6]

Шеф человек упертый...


Ну что ж, это его проблемы.


 
DeadMeat ©   (2005-02-03 11:27) [10]

Набережных С. ©   (03.02.05 10:57) [8]
1. Вылетает с ошибкой при запуске прямо. В тексте ошибки сказано, только что Abnormal program termination (это щас по памяти). И все.. Более ничего
2. Если оболочкой запускать, то работает. И если запускать от имени администратора через ярлык, то тоже работает. Но вот через CreateProcessWithLogonW не хочет. Кода щас под рукой нет, а то показал бы. Но там все просто. Заполняем поля и запускаем. Код смогу показать только вечером, когда домой доберусь, поэтому если вам не сложно, то поясните в чем может быть прикол? Ведь другие программы работают таким образом (запускаются). А эта только через ярлык с пометкой "Run As"...
3. Потомучто (я уже писал это) надо ограничить доступ юзерей к этой папке вообще. Чтобы даже открыть не могли...


 
Anatoly Podgoretsky ©   (2005-02-03 11:40) [11]

DeadMeat ©   (03.02.05 10:36) [3]
При его запуске, он запускает саму программу тестрования с правами администратора

Пустить козла в огород.


 
Anatoly Podgoretsky ©   (2005-02-03 11:42) [12]

Вам это нужен грамотный администратор и программист, который таких глупостей не допустит.
Кроме того если пользователь может запускать программу, значит он может ее переписать на другой компьютер. Защита от этого использование клиент-серверных или терминальных технологий и недопущения до администрирования некомпетентных людей.


 
DeadMeat ©   (2005-02-03 11:58) [13]

Пустить козла в огород.

Что это означает в данной ситуации?

Anatoly Podgoretsky ©   (03.02.05 11:42) [12]

Объясните мне "не компетентному" и "не грамотному" человеку, как простой юзер, который знает только как запускать программы и копировать их из папки в папку, перепишет программу, к которой у него нет доступа? Ведь он запускает не саму программу тестирования, а лишь launcher, который уже запускает нужное. Ну перепишет он его, и что? Поэтому я так и реализовал, т.к. на мой взгляд это был лучший вариант. Я конечно могу ошибаться. Но этот вариант работает. Правда только под теми ОС, которые я указал, и то..., и то его не работоспособность связана с программой неизвестного автора.
Клиент-серверное решение не подходит, по причинам, которые я описал выше. Так же как и терминальные технологии... Я бы рад был реализовать по другому, но не получается...


 
Набережных С. ©   (2005-02-03 12:02) [14]

>DeadMeat ©   (03.02.05 11:27) [10]

Anatoly Podgoretsky ©   (03.02.05 11:40) [11] прав.
Попробуй LogonUser + CreateProcessAsUser, но только не от админа. Сделай для этого отдельного юзера, установив программу под него. Также попробуй дать права этому юзеру на активные рабочий стол и оконную станцию. Попробуй LoadProfile юзера. В общем, надо искать, чего ей не хватает и  думать:)


 
Набережных С. ©   (2005-02-03 12:04) [15]

Да, и если программа использует, например дилоги открытия файлов - все псу под хвост:)


 
BiN ©   (2005-02-03 12:12) [16]

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


 
DeadMeat ©   (2005-02-03 12:34) [17]

Это не те юзеры... ;)
Это не те университетские гении, которые сами всему обучаются, и способны поломать любую защиту (ну почти любую). Я с ними проработал уже почти больше года. Могу гарантировать, что они врядли чего сделают такого. Хоть это и не сложно...

Насчет отдельного юзера я думал.. Делал.. Причем эта была вторая мысль, после варианта с сетью. Все равно не работает... Я больше чем уверен, что причина в CreateProcessWithLogonW. Но вот как назло кода нет под рукой...
А вот вариант с LogonUser + CreateProcessAsUser обязательно попробую. Спасибо... Но может есть способ по проще?


 
DeadMeat ©   (2005-02-03 12:36) [18]

Вот что меня больше всего добивает, так это то, что на одних системах работает без проблем, а на других нет... Хотя все права, настройки безопасности и юзеры одинаковые... Вот с SP4 не хочет.. А без него - пожалуйста.


 
Набережных С. ©   (2005-02-03 13:12) [19]

BiN ©   (03.02.05 12:12) [16]
>Этот т.н. launcher легко будет модифицировать

При правах только на исполнение?

>DeadMeat ©   (03.02.05 12:34) [17]

Я тут попробовал одну мысль. Вроде получилось. Ставим пользователю права:
1.На папку с программой - стандартные: чтение и выполнение, список содержимого, чтение.
2.На файл программы - стандартные не важно, жмем дополнительно, выбираем учетку, изменить. Здесь оставлем только обзор папок/выполнение файлов, все остальное долой.

Вроде все. Запустить можно, а скопировать или переместить - нет.


 
BiN ©   (2005-02-03 13:27) [20]

Набережных С. ©   (03.02.05 13:12) [19]

BiN ©   (03.02.05 12:12) [16]
>Этот т.н. launcher легко будет модифицировать

При правах только на исполнение?


Да, изменяя адресное пространстве процесса.


 
DeadMeat ©   (2005-02-03 13:42) [21]

Да, изменяя адресное пространстве процесса.
Есть способ еще проще. Просто дать ей другую программу (хотя бы CMD.exe) с именем той...

Набережных С. ©   (03.02.05 13:12) [19]
Вот за это огромное спасибо.. Про такое наследование я и не подумал...
Здесь вроде работает, осталось проверить на месте. Но думаю и там будет.
Еще раз спасибо.

Но вот все же вопрос с CreateProcessWithLogonW остается открытым.. Но теперь уже чисто из академического интереса.


 
Набережных С. ©   (2005-02-03 13:45) [22]

>BiN ©   (03.02.05 13:27) [20]

А, ну да, она ведь запущена от текущего пользователя и он имеет к процессу полный доступ. Упустил.


 
MInd_f ©   (2005-02-03 14:12) [23]

Удалено модератором


 
MInd_f ©   (2005-02-03 14:18) [24]

Удалено модератором


 
Gloomer ©   (2005-02-03 14:55) [25]

Могу дать вариант решения, никак не связанный с Delphi, не привязанный к Win2k и не требующий написания отдельной программы.
Ставишь Folder Guard Pro (у меня стоит 6-я версия) и настраиваешь
видимость нужной папки в "Пустая". Предварительно вытаскиваешь ярлык на ехе-шник. После этого при просмотре данной папки любыми средствами она будет пустая, но при обращении к конкретно куазанному файлу он запустится. Лучше создать какую-нибудь папку и ее задать пустой, а затем в нее скопировать папку с программой.
Работает даже в 9х на FAT32, где никаких прав доступа и быть не может. Но при загрузке под ДОСом или другой системой содержимое папки будет видно.
Где скачать? Спроси  гугла, есть русификатор, кряк..


 
DeadMeat ©   (2005-02-03 15:26) [26]

Спасибо за совет.
Про ФолдерГард знаю. Пользовался раньше. Но за ним были замечены пара глюков.. Щас точно не помню каких, может быть даже в новой версии все работает.. Дело еще в том, что насколько я понимаю, папку все равно можно будет скопировать.
Но все равно спасибо...


 
DeadMeat ©   (2005-02-03 16:16) [27]

MInd_f ©   (03.02.05 14:12) [23]
Спасибо большое... Должно пригодится. Я та думал это у меня руки кривые. А оказывается не на столько. Оказывается они это специально сделали.


 
Александр1   (2005-02-04 06:21) [28]


> под ДОСом или другой системой содержимое папки будет видно.

Вот тут-то юзеры и свиснут прогу. Я как сейчас помню. У нас в универе один умный администратор сделал папку пустой. А мы с другом с системной дискетой DOS пришли и свиснули  на кафедре прогу по расчёту руксового.

> DeadMeat ©   (03.02.05 15:26) [26]

Надо привязать прогу к компьютеру (к железу).


 
Gloomer ©   (2005-02-04 10:16) [29]

>Александр1   (04.02.05 06:21) [28]
>Вот тут-то юзеры и свиснут прогу
согласен
>Надо привязать прогу к компьютеру (к железу)
Так же согласен.
Могу поделиться кодом для определения даты изготовления БИОСа и видеокарты. Выдает одинаковый результат в Вин9х и ВинХР


 
DeadMeat ©   (2005-02-04 10:29) [30]

Есть программа (не моя и автора не достать).
Да и к тому же подходить к каждому компу переписывать его серийник и вставлять по новой? А если комп заменили? Опять?
Нет. Так не пойдет.
Вообще так или иначе, но проблема решена, большое спасибо Набережных С. ©   (03.02.05 13:12) [19].
Все сделал именно так и все работает...


 
GrayFace ©   (2005-02-08 02:43) [31]

DeadMeat ©   (03.02.05 16:16) [27]
MInd_f ©   (03.02.05 14:12) [23]
Спасибо большое... Должно пригодится. Я та думал это у меня руки кривые. А оказывается не на столько. Оказывается они это специально сделали.

А что там было до удаления админом?


 
DeadMeat ©   (2005-02-08 09:22) [32]

Не буду приводить сЦылку здесь, а то тоже удалят.
Но в кратце расскажу, что понял.
Проблема максимального числа подключений оказывается на самом деле была введена майкрософтом специально. Для якобы сдерживания распространения червей и т.п. дряни по сети. То, что привел MInd_f доводило это число до 50. Но по сути это является кряк.
Сразу скажу, что у меня (на моем билде 2600) это не сработало. Нужен другой билд. Там в списке они есть.

Может все таки есть еще способ подключить больше чем 10 юзеров к сетевому ресурсу?

Остальные проблемы в принципе решены. Спасибо тем, кто помог. И тем кто хотел помочь...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.739 c
9-1092944420
Zer0[np]
2004-08-19 23:40
2005.03.20
А не устраивать ли нам небольшие конкурсы по кодингу? (ч.2)


6-1105613443
Homa_Programer
2005-01-13 13:50
2005.03.20
СОКЕТЫ :(


4-1107823718
dyuss
2005-02-08 03:48
2005.03.20
приложение по умолчанию


3-1108833569
Leonardo
2005-02-19 20:19
2005.03.20
Как получить верный результат используя SUM()


1-1109943377
100a
2005-03-04 16:36
2005.03.20
Стандартные функции удаления файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский