Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

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

 

  Вопрос: Windows - uZvers & pass Добавлено: 08.11.08 20:59  

Автор вопроса:  Boconon | Web-сайт: microsoft.com | ICQ: 216390557 
Помогите плиз! Копался в нете - ничего толкового не нашел...
как на VB:
1) получить список пользователей винды?
2) проверить, подходит ли пароль для учетной записи юзверя?
3) запустить прогу от имени юзверя? (если известно имя или пасс)

Буду благодарен за любые ссылки, куски кода, исходники (хотя эт я ужо слишком разогнался), мысли и т.д.

Ответить

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

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 09.11.08 00:16
NetUserEnum, CreateProcessAsUser

Ответить

Номер ответа: 2
Автор ответа:
 Boconon



ICQ: 216390557 

Вопросов: 25
Ответов: 71
 Web-сайт: microsoft.com
 Профиль | | #2
Добавлено: 09.11.08 17:02
спасибо!

Ответить

Номер ответа: 3
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #3
Добавлено: 09.11.08 17:56
2) проверить, подходит ли пароль для учетной записи юзверя?

У тебя получилось?

мне очень интересно. напиши пожалуйсто код

Ответить

Номер ответа: 4
Автор ответа:
 Cooller



Вопросов: 11
Ответов: 32
 Профиль | | #4 Добавлено: 09.11.08 21:09
а почему NetUserEnum нет в api viewer?

Ответить

Номер ответа: 5
Автор ответа:
 Boconon



ICQ: 216390557 

Вопросов: 25
Ответов: 71
 Web-сайт: microsoft.com
 Профиль | | #5
Добавлено: 09.11.08 21:23
в апи вьювере его реально нету... :(
CreateProcessAsUser - за это спасибо!
а вообще я нашел обалденный исходник по теме на делфи - щас пытаюсь копать, хотя ужасно плохо шарю в делфях :(
исходничек обалденный - в нем три способа проверить пароль
1 способ - просто, неудобен (там с правами заморочки), 3 способ - вообще дичь полнейшая...
а для 2 способа дико-мего-сложного там готовый класс на делфи - его я и копаю...

Ответить

Номер ответа: 6
Автор ответа:
 Boconon



ICQ: 216390557 

Вопросов: 25
Ответов: 71
 Web-сайт: microsoft.com
 Профиль | | #6
Добавлено: 09.11.08 21:24
если кто шарит в делфях - помогите плиз!
если не перевести, то хотяб откомпилировать класс как библиотеку, чтоб можно было юзать

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 09.11.08 21:26
Потому что API Viewer это говно.

Ответить

Номер ответа: 8
Автор ответа:
 Boconon



ICQ: 216390557 

Вопросов: 25
Ответов: 71
 Web-сайт: microsoft.com
 Профиль | | #8
Добавлено: 09.11.08 21:33
Возможно. А может для него есть более полные базы данных?

Ответить

Номер ответа: 9
Автор ответа:
 Cooller



Вопросов: 11
Ответов: 32
 Профиль | | #9 Добавлено: 09.11.08 23:22
2 Sharp скинь плз описание этих api
2 Boconon а как CreateProcessAsUser юзать? Откуда токен брать?

Ответить

Номер ответа: 10
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #10
Добавлено: 10.11.08 08:27
http://www.vbnet.ru/forum/show.aspx?id=127897

Ответить

Номер ответа: 11
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #11
Добавлено: 10.11.08 08:43
Вот неплохой сайт об API.
http://win-api.narod.ru/a3780.htm

Ответить

Номер ответа: 12
Автор ответа:
 Cooller



Вопросов: 11
Ответов: 32
 Профиль | | #12 Добавлено: 10.11.08 10:42
как заюзать CreateProcessAsUser?

Ответить

Номер ответа: 13
Автор ответа:
 



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

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #13
Добавлено: 11.11.08 01:25
  1. Private Type STARTUPINFO
  2.         cb As Long
  3.         lpReserved As Long
  4.         lpDesktop As Long
  5.         lpTitle As Long
  6.         dwX As Long
  7.         dwY As Long
  8.         dwXSize As Long
  9.         dwYSize As Long
  10.         dwXCountChars As Long
  11.         dwYCountChars As Long
  12.         dwFillAttribute As Long
  13.         dwFlags As Long
  14.         wShowWindow As Integer
  15.         cbReserved2 As Integer
  16.         lpReserved2 As Long
  17.         hStdInput As Long
  18.         hStdOutput As Long
  19.         hStdError As Long
  20. End Type
  21. Private Type PROCESS_INFORMATION
  22.         hProcess As Long
  23.         hThread As Long
  24.         dwProcessId As Long
  25.         dwThreadId As Long
  26. End Type
  27.  
  28. Private Declare Function LogonUser Lib "Advapi32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long
  29. Private Declare Function CreateProcessAsUserA Lib "kernel32" (ByVal hToken As Long, 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 String, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  30.  
  31. Private Const LOGON32_LOGON_INTERACTIVE = 2
  32. Private Const LOGON32_PROVIDER_DEFAULT = 0
  33. Private Const NORMAL_PRIORITY_CLASS = &H20
  34. Private Const INVALID_HANDLE_VALUE = -1
  35.  
  36. Function CreateProcessAsUser(ByVal UserName As String, ByVal Domain As String, ByVal Password As String, ByVal CommandLine As String) As Long
  37.     Dim hToken As Long
  38.     Dim SI As STARTUPINFO
  39.     Dim PI As PROCESS_INFORMATION
  40.     SI.cb = Len(SI)
  41.     CreateProcessAsUser = INVALID_HANDLE_VALUE
  42.     If Not LogonUser(UserName, Domain, Password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken) Then Stop 'Exit Function
  43.     Debug.Print Err.LastDllError
  44.     If Not CreateProcessAsUserA(hToken, vbNullString, CommandLine, ByVal 0&, ByVal 0&, False, NORMAL_PRIORITY_CLASS, ByVal 0&, ByVal 0&, SI, PI) Then Exit Function
  45.     CreateProcessAsUser = PI.hProcess
  46. End Function
  47.  
  48. Private Sub Form_Load()
  49.     CreateProcessAsUser "TestUser", "DOMKRATT_PC", "MegaPassword1", "notepad.exe"
  50. End Sub

А вообще проще юзать АПИ CreateProcessWithLogon =)

Ответить

Номер ответа: 14
Автор ответа:
 Cooller



Вопросов: 11
Ответов: 32
 Профиль | | #14 Добавлено: 11.11.08 11:01
А вообще проще юзать АПИ CreateProcessWithLogon

скинь плз описание этой апишки, в api viewer ваще ничего нет:(

Ответить

Номер ответа: 15
Автор ответа:
 



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

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #15
Добавлено: 11.11.08 12:22
  1. Private Const LOGON_WITH_PROFILE = &H1&
  2. Private Const LOGON_NETCREDENTIALS_ONLY = &H2&
  3. Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
  4. Private Const CREATE_NEW_CONSOLE = &H10&
  5. Private Const CREATE_NEW_PROCESS_GROUP = &H200&
  6. Private Const CREATE_SEPARATE_WOW_VDM = &H800&
  7. Private Const CREATE_SUSPENDED = &H4&
  8. Private Const CREATE_UNICODE_ENVIRONMENT = &H400&
  9. Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000&
  10. Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000&
  11. Private Const HIGH_PRIORITY_CLASS = &H80&
  12. Private Const IDLE_PRIORITY_CLASS = &H40&
  13. Private Const NORMAL_PRIORITY_CLASS = &H20&
  14. Private Const REALTIME_PRIORITY_CLASS = &H100&
  15. Private Type PROCESS_INFORMATION
  16.     hProcess As Long
  17.     hThread As Long
  18.     dwProcessId As Long
  19.     dwThreadId As Long
  20. End Type
  21. Private Type STARTUPINFO
  22.     cb As Long
  23.     lpReserved As Long
  24.     lpDesktop As Long
  25.     lpTitle As Long
  26.     dwX As Long
  27.     dwY As Long
  28.     dwXSize As Long
  29.     dwYSize As Long
  30.     dwXCountChars As Long
  31.     dwYCountChars As Long
  32.     dwFillAttribute As Long
  33.     dwFlags As Long
  34.     wShowWindow As Integer
  35.     cbReserved2 As Integer
  36.     lpReserved2 As Byte
  37.     hStdInput As Long
  38.     hStdOutput As Long
  39.     hStdError As Long
  40. End Type
  41. Private Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Long
  42. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  43. Private Sub Form_Load()
  44.     Dim lpUsername As String, lpDomain As String, lpPassword As String, lpApplicationName As String
  45.     Dim lpCommandLine As String, lpCurrentDirectory As String
  46.     Dim StartInfo As STARTUPINFO, ProcessInfo As PROCESS_INFORMATION
  47.     lpUsername = "OtherUser"
  48.     lpDomain = ""
  49.     lpPassword = "other_user_password"
  50.     lpApplicationName = "C:\WINNT\NOTEPAD.EXE"
  51.     lpCommandLine = vbNullString 'use the same as lpApplicationName
  52.     lpCurrentDirectory = vbNullString 'use standard directory
  53.     StartInfo.cb = LenB(StartInfo) 'initialize structure
  54.     StartInfo.dwFlags = 0&
  55.     CreateProcessWithLogon StrPtr(lpUsername), StrPtr(lpDomain), StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), StartInfo, ProcessInfo
  56.     CloseHandle ProcessInfo.hThread 'close the handle to the main thread, since we don't use it
  57.     CloseHandle ProcessInfo.hProcess 'close the handle to the process, since we don't use it
  58.     'note that closing the handles of the main thread and the process do not terminate the process
  59.     'unload this application
  60.     Unload Me
  61. End Sub

Ответить

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

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



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