Страница: 1 | 2 |
Вопрос: как программно запаролить папку в дот нете ?
Добавлено: 14.11.05 19:59
Автор вопроса: student-uni
Кто знает как программно запаролить папку в дот нете ?
Пасибо
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 14.11.05 20:14
Как понять "запаролить" ?
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 14.11.05 21:37
Как и в VB6 - Никак
Номер ответа: 3
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #3
Добавлено: 14.11.05 23:28
2 Pavel
В виндусе Актив Директори есть опция - запаролить папку. На папку вешается пароль.
Войти в неё можно только введя пароль.
Вопрос - можно ли это делать программно ?
2 Хакер
Если никак, то как можно реализовать следующее:
я использую конфигурационные файлы Терминал Акссесс. Это обычный текстовый файл, в котором ай пишник другой стороны, Логин и пароль.
Естественно их каждый может прочитать.
Я думал их спрятать в директорию под паролем.
Но если такое невозможно, что можно ещё придумать ?
(Стелс директори не подходит по одной простой причине - в скрытом состоянии к ней доступа нет, те надо открывать, читать и закрывать, а если в момент открытия нажать РЕсет - прога может неуспеть её скрыть.)
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 14.11.05 23:34
Войти в неё можно только введя пароль.
хм... это в NTFS что-ли? Или в более новее чем XP?
Файл терминала создавать программно, где-то в твой проге он есстно хорошо спрятан, зашифрован итп... Когда надо подключится к БД, извлекать из себя файл, запускать, после коннекта сразу удалять... Идея сырая, нужно чтобы файл "неуспели найти"
Номер ответа: 5
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #5
Добавлено: 15.11.05 00:24
Зашифруй файл и все. В .NET для этого есть специальный коасс. Можно установить пароль.
Так же есть примеры шифрования. Все очень просто.
Примеры посмотри на сайте MS.
Номер ответа: 6
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #6
Добавлено: 15.11.05 19:47
Хм-м. Не дурно. Спасибо !
(Надо же как сам не допёр.)
А можно ли хотябы файл невидимым сделать,
но иметь к нему доступ ?
Или запретить просмотр и копирование ?
/бред конечно/
Ведь скопирует какая то редиска,
и начнёт курочить.
Или можно так зашифровать, что на перебор 100 лет уйдёт ?
Номер ответа: 7
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #7
Добавлено: 15.11.05 19:50
Можно, что и гораздо больше
Номер ответа: 8
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #8
Добавлено: 16.11.05 11:38
Проблема !
мне при раскодировании его опять кудато писать надо.
Иначе как я его программе в командную строку скормлю ?
Вопрос, можно ли как либо в потоке перекодировать и тут же скормить ?
Пример
нормально ето происходит так:
mstsc.exe myConnect.rdp
теперь я зашифровал myConnect.rdp т е mstsc.exe его не поимет,
надо перекодировать обратно, записать на диск а потом запустить
Как бы ето сделать без перезаписи на диск ?
Спасибо
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 16.11.05 13:21
скрыто cmd запусти, е ему потоково передавай параметы...
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 16.11.05 15:20
'===========================================================|
'< ЭМУЛЯЦИЯ КОММАНДНОЙ СТРОКИ ! >|
' |
' = = = = = = = M A D E B Y H A C K E R = = = = = = |
' icq: 334479038, mail: visualbasic@xaker.ru |
'===========================================================|
Option Explicit
Private Type PIPE
hRead As Long
hWrite As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, _
phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
lpApplicationName As String, ByVal lpCommandLine As String, ByVal _
lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, _
lpStartupInfo As STARTUPINFO, lpProcessInformation As _
PROCESS_INFORMATION) As Long
Private Declare Function ReadFile Lib "kernel32" ( _
ByVal hFile As Long, _
ByVal lpBuffer As String, _
ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, _
ByVal lpOverlapped As Any) As Long
Private Declare Function WriteFile Lib "kernel32" ( _
ByVal hFile As Long, _
ByVal lpBuffer As String, _
ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, _
ByVal lpOverlapped As Any) As Long
'конвертируем строку в win-кодировку.
Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" _
 ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const STARTF_USESHOWWINDOW = &H1
Private Const SW_HIDE = 0
Private Const STARTF_USESTDHANDLES = &H100
Private input1 As PIPE
Private output1 As PIPE
Private pi As PROCESS_INFORMATION
Public Sub initDos() 'Ф-ция инцелизации, вызывать в самом начале обязательно!
Dim sa As SECURITY_ATTRIBUTES
Dim si As STARTUPINFO
sa.nLength = Len(sa)
sa.bInheritHandle = 1
sa.lpSecurityDescriptor = 0
Call CreatePipe(input1.hRead, input1.hWrite, sa, 0)
Call CreatePipe(output1.hRead, output1.hWrite, sa, 0)
si.cb = Len(si)
si.dwFlags = STARTF_USESHOWWINDOW Or STARTF_USESTDHANDLES
si.wShowWindow = SW_HIDE
si.hStdInput = input1.hRead
si.hStdOutput = output1.hWrite
si.hStdError = output1.hWrite
Call CreateProcessA(vbNullString, "CMD.exe", 0&, 0&, 1&, _
0, 0&, vbNullString, si, pi)
End Sub
Public Function dosShell(StrCmd As String) As String
Dim dwBuff As Long
Dim buff As String * 4096
Dim cmd As String * 1024
Dim result As String
'выполнение команды
cmd = vbNullString
cmd = RTrim(StrCmd) & vbCrLf
Call WriteFile(input1.hWrite, cmd, Len(cmd), dwBuff, ByVal 0&
Sleep (500)
Do
Call ReadFile(output1.hRead, buff, 4096, dwBuff, ByVal 0&
buff = Left(buff, dwBuff)
result = result & RTrim(buff)
If (Right(RTrim(buff), 1) = ">" Then Exit Do
buff = vbNullString
Loop While (dwBuff <> 0)
'конвертирование результата в WIN кодировку
Dim sourcestring As String ' нужная строка
Dim deststring As String ' получаемая строка
Dim code As Long
deststring = Space$(Len(result)) 'получаем перекодированную строку
code = OemToChar(result, deststring)
dosShell = deststring
End Function
в декларацию
вызывать
If initDosFlag = False Then
initDos 'инициализируем эмуляцию коммандной строки
initDosFlag = True
End If
s$ = dosShell(p$)
p$ - команда доса, например
p$ = "dir C:\"
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 16.11.05 15:24
файл myConnect.rdp извлеч куда-то подальше скормить его cmd, когда dosShell вернёт результат, удалить файл ... при всём этом следить чтоб не запустиль Filemon, а если запустят - отформатировать HARD! )))
Номер ответа: 12
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #12
Добавлено: 16.11.05 17:55
ну ты монстр
Спасибо
только я наверно погибну при переводе на .dot net
не поминайте лихом...
Номер ответа: 13
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #13
Добавлено: 16.11.05 20:20
Извини, что не внимательно прочитал, ну я думаю информация лишней не будет
Естественно их каждый может прочитать
Но ведь пароль в файле храниться в зашифрованном виде???? Этого мало для безопасности?
Номер ответа: 14
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #14
Добавлено: 16.11.05 22:22
Спасибо
Ну до монстра далековато , за спасибо - пожалуйста. На .NET переделать думаю не составит труда, ведь одни API. Кста ещё выгрузку наду придумать, а то cmd так и останется в памяти висеть... проще всего в конце все cmd убить (TerminateProcess), чуть ровнее посмотреть все дескрипторы процессов до запуска cmd и после, этим самым вычеслить дескриптор нашего cmd, ну а потом уже убить не все а конкретно наш...
Номер ответа: 15
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #15
Добавлено: 17.11.05 10:33
Если нужно всего лишь запустить консольное приложение и получить контроль над потоком ввода и вывода, то используйте класс Process - он всё это умеет.