|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Реестр и консоль востановления
Пожайлуста подскажите где в реестре хранятся пароли учетных записей
если они зашифрованы моно их как нидь расшифровать и если к ним нет доступа то как получить....???? По крайне мере по умолчанию невозможно и с помощью консоли востонавления скинуть файлы с жесткого дистка на внешний носитель.... елси кто знает как обойти подскажите елси невозможно... есть ли другие способы??? Всем с уважением Буду рад любой инфе !!!!! |
#2
|
||||
|
||||
А кто сказал, что они хранятся в реестре? Если мне не изменяет память, то они хрнятся в SAM-файле. А этот файл тебе из Windows скопировать не удастся, т.к. он постоянно используется ОС. Его можно скопировать из другой ОС. Как выход можно зайти за истинного админа через Безопасный режим и убрать пароли с учетных записей. Ну это уже варварские методы....
Программирование - это искусство и наш смысл жизни. Последний раз редактировалось moo2k, 01.05.2008 в 16:36. |
#3
|
|||
|
|||
Код:
function NetUserChangePassword(DomainName, UserName, OldPassword, NewPassword: LPCWSTR): DWord; stdcall;external 'netapi32.dll' name 'NetUserChangePassword'; function ServerUncName(Name: string): string; begin if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion < 5) then Result := '\\' + Name else Result := Name; end; procedure CvtToWideChar(const S: string; var WS: TLMWideChar); var s1:string; begin if ws.Value<>nil then Freemem(ws.Value,ws.Length); s1:=trim(s); if length(s1)>0 then begin ws.Length:=((length(s1)+1)*2); getmem(ws.Value,ws.Length); stringtowidechar(s1,ws.Value,ws.Length); end else begin ws.Value:=nil; ws.Length:=0; end; end; function changepass(DomainName, UserName, OldPassword, NewPassword: string): dword; var D, U, O, N : TLMWideChar; begin Result := 0; if NETAPI then begin if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion < 5) then DomainName:='//'+DomainName else DomainName:=DomainName; D.Value := nil; U.Value := nil; O.Value := nil; N.Value := nil; try CvtToWideChar(DomainName, D); CvtToWideChar(UserName, U); CvtToWideChar(OldPassword, O); CvtToWideChar(NewPassword, N); Result := NetUserChangePassword(D.Value, U.Value, O.Value, N.Value); finally FreeMem(D.Value, D.Length); FreeMem(U.Value, U.Length); FreeMem(O.Value, O.Length); FreeMem(N.Value, N.Length); end; end; end; //user-имя учетной записи pas-пароль для проверки(является ли pas паролем) id:=ChangePass('',user,pas,pas); if ID=0 then //УРА-УРА-УРА.Пароль совпал как видишь можно написать брутфорсер.А если просто узнать пароль то это не очень легкое дело |