Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить HDD программы из под гостя? [D6, WinXP]


Страницы:   1 2

AllDontFire ©   (2008-06-04 02:46:00) 

Привет Всем!

Как определить с какого жёсткого диска запущена программа из под   юзера с ограниченными правами (Гость, например) ?

Спасибо.


AllDontFire   (2008-06-07 23:53:00) [1]

Так до бесконечности можно спорить :-)
Ничего страшного не вижу в чтении Exteneded Attributes устройств из под гостя. К примеру, гость видит в закладке "Безопасность" файла у кого какие права есть на этот файл, по аналогии можно расценить как "ЕА" файла.
А вообще, соглашусь, для CreateFile/DeviceIoControl лучше иметь законные права.


Игорь Шевченко   (2008-06-06 23:50:00) [2]

Вот написано же:

"You can use the CreateFile function to open a physical disk drive or a volume. The function returns a handle that can be used with the DeviceIoControl function. This enables you to access the disk's partition table. It is potentially dangerous to do so, since an incorrect write to a disk could make its contents inaccessible. The following requirements must be met for such a call to succeed:

The caller must have administrative privileges"


AllDontFire   (2008-06-06 22:19:00) [3]

Ок, сервис тоже идея хорошая.

А под гостём модели HDD можно прочесть через CreateFile(Pchar('\\.\Scsi'+inttostr(id)+':'),...), и вряд ли это "дырка", т.к. в диспетчере устройств они тоже под гостём видны. А вот уже найти   соотвествие лог-им разделам через "scsi" я не знаю как.


Игорь Шевченко   (2008-06-06 20:38:00) [4]


> но ограниченные юзера есть и на постоянных компах.


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

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


AllDontFire   (2008-06-06 20:29:00) [5]

Согласен, с комп. клубом надо что-то другое придумать, но ограниченные юзера есть и на постоянных компах.


Игорь Шевченко   (2008-06-06 16:40:00) [6]


> В инете скачал и запустил :-)


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


AllDontFire   (2008-06-06 15:34:00) [7]

В инете скачал и запустил :-)


Игорь Шевченко   (2008-06-06 15:14:00) [8]


> Проект, в принципе, на это не рассчитан, например, кто-то
> в компьютерном клубе будет сидеть.


принес с собой и запустил ? :)


AllDontFire   (2008-06-06 14:24:00) [9]

Проект, в принципе, на это не рассчитан, например, кто-то в компьютерном клубе будет сидеть.


Игорь Шевченко   (2008-06-05 23:48:00) [10]

AllDontFire   (05.06.08 23:05) [27]

Сделай сервис, который работает не из-под гостя, и нехай он с винтами разруливает. Его из-под гостя и прибить сложнее. А программа нехай к сервису общается под гостем это вполне допустимо


AllDontFire   (2008-06-05 23:05:00) [11]

> Игорь Шевченко
Да


Игорь Шевченко   (2008-06-05 17:12:00) [12]

AllDontFire   (05.06.08 01:46) [25]

Защита ?


AllDontFire   (2008-06-05 01:46:00) [13]

> Anatoly Podgoretsky
Мне нужно определить, что программа запущена, к примеру, c физического HDD "SAMSUNG SP1614N 12345abc", а лог. диск/раздел типа C,D и т.д. легко определить по application.ExeName, например.

> LightRipple
Спасибо, буду пробовать.


LightRipple   (2008-06-05 01:14:00) [14]

> [22] AllDontFire   (05.06.08 00:40)
> Хорошо, тогда сабж для случаев когда буква есть - возможен?

Возможен. Добавлю ка я IMHO, а то ведь до сих пор не могу привести пример изменения кластеров при записи :)
До Delphi я еще не добралась, так что все нижесказанное - это по памяти. Могу ошибаться.
Для начала: IOCTL_DISK_GET_DRIVE_LAYOUT - устарела.
Надо использовать IOCTL_DISK_GET_DRIVE_LAYOUT_EX.
Второе: если нужен только список "партишенов", то на ней свет клином не сошелся.
Насчет доступа: я бы пошла "методом научного тыка". (Именно так я поступила, когда у меня была похожая проблемма).
Надо пробовать различные варианты открытия диска (а их как собак нерезанных :),
комбинируя их с разными способами получения информации.
Возможно API не хватит для этого, тогда смотри в сторону Nt - они более "гибкие".


Anatoly Podgoretsky   (2008-06-05 01:00:00) [15]

> AllDontFire  (05.06.2008 0:40:22)  [22]

Не знаю, есть ли АПИ, но вариант с поиском : тебе подсказали, только на всякий случай надо расширить проверку, что был строго один символ, а то могут быть варианты.


AllDontFire   (2008-06-05 00:40:00) [16]

Хорошо, тогда сабж для случаев когда буква есть - возможен?


Anatoly Podgoretsky   (2008-06-05 00:31:00) [17]

> AllDontFire  (04.06.2008 23:57:19)  [19]

Тебе несколько раз намекнули, что буквы может не быть.


Anatoly Podgoretsky   (2008-06-05 00:30:00) [18]

> Игорь Шевченко  (04.06.2008 23:51:18)  [18]

Понял.


AllDontFire   (2008-06-04 23:57:00) [19]

Ветвь плавно перешла в другую область :-) , хотя сам виноват, мешать не буду.

И всё-таки сабж возможен или нет, может другие способы есть?


Игорь Шевченко   (2008-06-04 23:51:00) [20]

Anatoly Podgoretsky ©   (04.06.08 23:46) [17]

Нет, в Disk manager примонтировал раздел одного диска в каталог диска С.

Reparse Point


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо