Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: как программно запаролить папку в дот нете ? Добавлено: 14.11.05 19:59  

Автор вопроса:  student-uni
Кто знает как программно запаролить папку в дот нете ?
Пасибо

Ответить

  Ответы Всего ответов: 27  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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-сайт: softvito.narod2.ru
 Профиль | | #5
Добавлено: 15.11.05 00:24
Зашифруй файл и все. В .NET для этого есть специальный коасс. Можно установить пароль.

Imports System.Security.Cryptography


Так же есть примеры шифрования. Все очень просто.

Примеры посмотри на сайте MS.

Ответить

Номер ответа: 6
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #6 Добавлено: 15.11.05 19:47
Хм-м. Не дурно. Спасибо !
(Надо же как сам не допёр.)

А можно ли хотябы файл невидимым сделать,
но иметь к нему доступ ?

Или запретить просмотр и копирование ?

/бред конечно/

Ведь скопирует какая то редиска,
и начнёт курочить.

Или можно так зашифровать, что на перебор 100 лет уйдёт ?

Ответить

Номер ответа: 7
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #7
Добавлено: 15.11.05 19:50
Или можно так зашифровать, что на перебор 100 лет уйдёт ?

Можно, что и гораздо больше:)

Ответить

Номер ответа: 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
Attribute VB_Name = ";DOS"
'===========================================================|
'<               ЭМУЛЯЦИЯ КОММАНДНОЙ СТРОКИ !              >|
'                                                           |
' = = = = = = = 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


в декларацию
Dim initDosFlag As Boolean


вызывать

    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-сайт: softvito.narod2.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #15
Добавлено: 17.11.05 10:33
Если нужно всего лишь запустить консольное приложение и получить контроль над потоком ввода и вывода, то используйте класс Process - он всё это умеет.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам