Страница: 1 |
Страница: 1 |
Вопрос: Как можно блокировади диск C
Добавлено: 05.09.06 16:43
Автор вопроса: KEP
Кто знает как можно блокировать обращение к диску с???? Очень нужна защита от злобных юзеров.
Знаю как блокировать CD Лоток.
Option Explicit
Private Const FILE_DEVICE_MASS_STORAGE As Long = &H2D
Private Const IOCTL_STORAGE_BASE As Long = FILE_DEVICE_MASS_STORAGE
Private Const FILE_READ_ACCESS As Long = &H1
Private Const GENERIC_READ As Long = &H80000000
Private Const FILE_SHARE_READ As Long = &H1
Private Const FILE_SHARE_WRITE As Long = &H2
Private Const OPEN_EXISTING As Long = 3
Private Type PREVENT_MEDIA_REMOVAL
PreventMediaRemoval As Long
End Type
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long
Private Function CTL_CODE(lngDeviceType, lngFunction, lngMethod, lngAccess) As Long
CTL_CODE = ((lngDeviceType * (2 ^ 16)) Or (lngAccess * (2 ^ 14)) Or (lngFunction * (2 ^ 2)) Or lngMethod)
End Function
Public Function LockCD(ByVal Locked As Boolean, ByVal DriveL as String) As Boolean
Dim BRet As Long
Dim IOCTL_STORAGE_MEDIA_REMOVAL As Long
Dim xBuf As PREVENT_MEDIA_REMOVAL
Dim cdVolHandle As Long
Dim Retrn As Long
IOCTL_STORAGE_MEDIA_REMOVAL = CTL_CODE(IOCTL_STORAGE_BASE, &H201, 0, FILE_READ_ACCESS)
DriveL = "\\.\" & DriveL & ":"
cdVolHandle = CreateFile(DriveL, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, 0, 0)
If cdVolHandle = -1 Then
LockCD = False
Exit Function
End If
If Locked = True Then
xBuf.PreventMediaRemoval = 1
Else: xBuf.PreventMediaRemoval = 0
End If
Retrn = DeviceIoControl(cdVolHandle, IOCTL_STORAGE_MEDIA_REMOVAL, xBuf, Len(xBuf), ByVal 0, 0, BRet, ByVal 0)
Call CloseHandle(cdVolHandle)
If Retrn = 0 Then
LockCD = False
Else: LockCD = True
End If
End Function
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #1
Добавлено: 05.09.06 17:00
ACL подкрутить нужно.
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 05.09.06 22:05
перехват апи...
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 05.09.06 22:14
Также можно програмно перестать подавать ток на HDD
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 05.09.06 23:29
приклеить в нужном месте на мониторе кусочек черной непросвечивающей бумаги :P ?
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 06.09.06 00:21
Вытящить винчестер из системного блока.
Номер ответа: 6
Автор ответа:
KEP
Вопросов: 44
Ответов: 119
Профиль | | #6
Добавлено: 06.09.06 03:39
Умно. (Еще можно выбросить комп в космас) ))
Номер ответа: 7
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #7
Добавлено: 06.09.06 10:57
Фраза "Блокировка диска С" - должна проходить по разделу юмора и больше нигде. Злобных юзеров надо наделять нужными правами на доступ к нужным им файлам и папкам и вся их злобность уйдет в никуда.
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 06.09.06 11:08
Думается, для юзеров достаточно RestrictRun, все остальное - извращения ламадмина.