Программирование софта на VisualBasic PassWord Watcher:
Вчера было ужасное настроение.Работа не клеилась, учеба тоже.Единственным радостным занятием было написание пасс-гляделки Horrific'a. Т.к. делать было нечего, я решил написать небольшой ее аналог на VB.
Порывшись в исходниках, оставшихся еще со времен ex_DLC_1, я наколбасил что-то очень прикольное.В общем и целом, всю работу по вытаскиванию паролей я уже сделал. Тебе остается только нажать на кнопку.Кстати, работает она только с диалапными паролями, т.к. все действо идет через WNetEnumCached.
На форме располагаем кнопку и листбокс.
Но сначала создадим набольшой модуль(учите модульное проганье!) - Project-Add Module и назовем его grab.
'Объявляем функцию - пресловутый Wnetenum (Отвечает за весь беспредел)
Declare Function WNetEnumCachedPasswords Lib "mpr.dll" (ByVal s As String, ByVal i As
Integer, ByVal b As Byte, ByVal proc As Long, ByVal l As Long) As Long Type PASSWORD_CACHE_ENTRY
'Пишется в одну строку
cbEntry As Integer 'Объявляем переменные
cbResource As Integer
cbPassword As Integer
iEntry As Byte
nType As Byte
abResource(1 To 1024) As Byte
End Type
Public Function callback(X As PASSWORD_CACHE_ENTRY, ByVal lSomething As Long) As Integer
Dim nLoop As Integer 'Объявляем переменные дубль 2
Dim cString As String
Dim ccomputer
Dim Resource As String
Dim ResType As String
Dim Password As String
ResType = X.nType
For nLoop = 1 To X.cbResource 'let the party started
If X.abResource(nLoop) <> 0 Then
cString = cString & Chr(X.abResource(nLoop))
Else
cString = cString & " "
End If
Next
Resource = cString
cString = "" 'Присваивание - логин
For nLoop = X.cbResource + 1 To (X.cbResource + X.cbPassword)
If X.abResource(nLoop) <> 0 Then
cString = cString & Chr(X.abResource(nLoop))
Else
cString = cString & " " 'Нам нужен и логин и пасворд
End If
Next
Password = cString
cString = "" 'Присваивание 2 - пасс
'WOW ура,все круто,пишем в листбокс.
Form1.List1.AddItem " Login&Phone: " & Resource & " Password: " & Password
callback = True
End Function
Public Sub GetPasswords()
Dim nLoop As Integer 'Эх раз,ещё раз;где-то я это уже видел
Dim cString As String
Dim lLong As Long
Dim bByte As Byte
bByte = &HFF
nLoop = 0
lLong = 0
cString = ""
'Вызов функции из процедуры
Call WNetEnumCachedPasswords(cString, nLoop, bByte, AddressOf callback, lLong)
End Sub
-----------------------------
Сам код проекта.
'Это declarations
#If Win32 Then
Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
#End If
'Если Винда 95/98; увы в нте/2к не проверял
Private Const SW_SHOWNORMAL = 1 'Ещё константа
Private Sub Command1_Click()
List1.Clear 'Очищаем листбокс
Call GetPasswords 'Вызов GetPasswords
GoTo ends 'КОНЕЦ!!!
ends:
End Sub