AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Google Chrome Passwörter mit SQLite ausgeben - Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Google Chrome Passwörter mit SQLite ausgeben - Problem

Ein Thema von CorVu5 · begonnen am 20. Nov 2008 · letzter Beitrag vom 21. Nov 2008
 
CorVu5

Registriert seit: 31. Dez 2007
26 Beiträge
 
Delphi 7 Professional
 
#1

Google Chrome Passwörter mit SQLite ausgeben - Problem

  Alt 20. Nov 2008, 20:16
Datenbank: SQLite • Version: 3 • Zugriff über: SQLlite DLL..sorry, keine Ahnung von GBs ;)
Hallo Leute, ich habe ein (für mich) sehr seltsames Problem, und ich bin mir uach nicht sicher ob dies die richtige Section ist, da ich mein Problem noch nicht geau eingrenzen konnte.
Folgendes: Ich hatte ein wenig im Google Chrome Quelltext gestöbert und kam schließlich zu dem Punkt, an dem die Auto-Complete Passwörter gespeichert werden. Dies geschieht in einer SQLite Datenbank, die in den Anwendungsdaten gespeichert wird.
Jetzt wollte ich die Passwörter mal auslesen und entschlüsseln, prinzipiell nicht schwer wenn man den Quellcode hat:
http://src.chromium.org/viewvc/chrom...cc?view=markup

So sieht mein Ansatz aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
DB : TSQLiteDatabase;
table : TSQLiteTable;
i : Integer;
DataIn : DATA_BLOB;
DataOut: DATA_BLOB;
DataStream : TMemorystream;
pw : string;
begin
db := TSQLiteDatabase.Create(GetEnvironmentVariable('LOCALAPPDATA') + '\Google\Chrome\User Data\Default\Web Data');
table := DB.GetTable('SELECT * FROM logins');
While not Table.EOF do begin
  DataStream := TMemoryStream.Create;
  dataStream := table.FieldAsBlob(table.FieldIndex['password_value']);
  DataIn.pbData := DataStream.Memory;
  DataIn.cbData := DataStream.Size;
  CryptUnProtectData(@DataIn, nil,nil,nil,nil,0,@DataOut);
  pw := pchar(DataOut.pbData);
  Memo1.Lines.Add(table.FieldAsString(table.FieldIndex['origin_url']) + #13#10 + table.FieldAsString(table.FieldIndex['username_value']) + ' - ' + pw);
  DataStream.Free;
  Table.Next;
end;
end;
Ja, der dürfte noch ziemlich unsauber sein

Nun klappt das IM GRUNDE schon, bei den Passwörtern gibt es allerdings folgendes Problem:
Lautet mein Passwort zum Beispiel "hallo", bekomme ich als beispielsweise heraus:

"halloLMEM"

Wobei die "Sonderzeichen" von PW zu PW unterschiedlich sind, das LMEM steht aber immer drin.
Auch die Anzahl der Sonderzeichen ist immer unterschiedlich, was ein Filtern natürlich extrem erschwert.

Ich kann mir drei Problemursachen vorstellen:
1. Ich benutze FieldAsBlob irgendwie falsch, sodass ich dadurch die überzählogen Werte bekomme.
2. Ich mache einen Fehler bei CryptUnprotectData
3. Ich behandle iwie den zurückgegebenen String falsch, da ich nicht genau weiß wie das in C ist mit Stringtypen und so und aus dem Chrome-code in dieser Hinsicht nix sinnvolles ziehen kann.
Also: Ich habe mich shcon den ganzen Tag damit rumgeärgert und es wäre extrem nett, wenn mir da mal wer nen kleinen Tipp geben könnte
Danke im Voraus
Das Leben ist wie ein Strand...und dann stirbt man.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz