Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
InStream
Зарегистрирован: 23.06.2005 Сообщения: 8
|
Добавлено: Вс Авг 14 2005 22:51 Заголовок сообщения: Блокировка |
|
|
Необходимо ограничить доступ к портам и устройствам подключенным к ним. Ограничить com, lpt и usb порты. Суть: сделать невозможным использование внешних устройств, например модемов, внешних накопителей (флешки, переносные жесткие диски и т.д.). Но при необходимости (допустим по паролю - но это не суть проблемы) разблокировать нужный порт и разрешить его использование. Собственно метод блокировки не столь важен, главное сделать невозможным использование портов и устройств подключенных к ним. Пока нашел только функции OpenDriver и CloseDriver. Насколько понял OpenDriver позволяет передать драйверу команду DRV_DISABLE и DRV_ENABLE отключающих и включающих драйвер. Но не могу разобраться с их работой, а в сети практически не нашел информации на эту тему. Если кто то сталкивался с подобной задачей прошу помочь любым способом (советы, ссылки, примеры – кто чем может ). Программу пишу на VB, под 98/2000/XP. |
|
Вернуться к началу |
|
|
McZim
Зарегистрирован: 09.08.2005 Сообщения: 275 Откуда: Omsk
|
Добавлено: Пн Авг 15 2005 05:29 Заголовок сообщения: |
|
|
Для винды порты это тоже самое что и файлы, т.е. работа с портами осуществляется так же как и с портами! например в с++ CreateFile(...параметры...) применяется как для портов так и для файлов!
Попробуй порыть в эту сторону! |
|
Вернуться к началу |
|
|
InStream
Зарегистрирован: 23.06.2005 Сообщения: 8
|
Добавлено: Пн Авг 15 2005 23:55 Заголовок сообщения: |
|
|
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Const OPEN_EXISTING = 3
Public Const FILE_SHARE_NOSHARE = &H0
FileName="COM1"
hPort = CreateFile(FileName, GENERIC_READ, FILE_SHARE_NOSHARE, 0, OPEN_EXISTING, 0, 0)
успешно блокирует доступ к порту, а
CloseHandle hPort
успешно снимает блокировку, точнее закрывает поток использующий порт с параметром _NOSHARE.
Ну и как водится тут же возникли новые вопросы
С ком и лпт портами все понятно, а как закрыть usb? Или для этого все же стоит разбираться с OpenDriver/CloseDriver? И как определить какое устройство висит на порте, что бы допустим не отключить мышь или принтер? Как, допустим, просмотреть ветку "Принтеры" или "Мыши и другие..." в "Диспетчере устройств" XP/2000? |
|
Вернуться к началу |
|
|
InStream
Зарегистрирован: 23.06.2005 Сообщения: 8
|
Добавлено: Чт Авг 18 2005 23:44 Заголовок сообщения: |
|
|
Допустим через порт (usb,com,lpt) передается файл, возможно ли определить его имя, путь и в случае необходимости отменить передачу? |
|
Вернуться к началу |
|
|
McZim
Зарегистрирован: 09.08.2005 Сообщения: 275 Откуда: Omsk
|
Добавлено: Пт Авг 19 2005 04:42 Заголовок сообщения: |
|
|
Для того что-бы тебе отловить какой-нить файл, тебе нужно написать обычный монитор и повешать его на порт (только ты должен обязательно знать на какой порт и с какой скоростью). Про USB ничего не могу сказать, только то что там происходит управление через драйвера, удобнее всего написать самогу драйвер!!! |
|
Вернуться к началу |
|
|
InStream
Зарегистрирован: 23.06.2005 Сообщения: 8
|
Добавлено: Пт Авг 26 2005 22:14 Заголовок сообщения: |
|
|
Короче как я понял, под такие вещи надо Си
Может посоветуете откуда брать информацию по портам и написанию драйверов? |
|
Вернуться к началу |
|
|
McZim
Зарегистрирован: 09.08.2005 Сообщения: 275 Откуда: Omsk
|
Добавлено: Пн Авг 29 2005 06:49 Заголовок сообщения: |
|
|
Ynadex.ru Google.com.ru Rambler.ru |
|
Вернуться к началу |
|
|
|