Сейчас на форуме: Magister Yoda, site-pro, Rio (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Чтение баз "Login Data" в Chromium Based браузерах
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 июля 2013 22:32
· Личное сообщение · #1

Приветствую. На просторах интернета нашел программу написанную чисто на Asm. Она "прокладывает путь" к файлу "Login Data" в Local Appdata (для Google Chrome), открывает бд (SQL Lite 3) для чтения, расшифровывает функцией crypt32.CryptUnprotectData и как-то считывает все что есть. На выходе выдаёт MessageBox со всеми данными. Может есть у кого-нибудь алгоритм разбора такой SQL Lite 3 бд? На каком-нибудь высокоуровневом языке программирования? (Delphi желательно). Не понял из кода Asm циклы считывания и получения размеров строк.
Вот небольшой переписанный код на Delphi: (дальше просто тупик)
Code:
  1. const CSIDL_LOCAL_APPDATA = $1c;
  2.          chrome_sp_filename:ShortString = 'Login Data'; // Chrome Pass Filename
  3.          chrome_sp_path:ShortString = '\Chrome\Chrome\User Data\Default'; // Chrome Pass Path
  4. var str_LocalAppData:ShortString;
  5.  
  6. procedure FuncUnknown(arg1_empty,arg2_fullpath);
  7. var FileSize: Dword;
  8.          MappingHandle: Dword;
  9. begin
  10.          if not FileExists(arg2_fullpath) then Exit;
  11.          FileSize := GetFileSize(FileHandle_of_arg2_fullpath,0);
  12.          // CreateFileMappingA >> Read Only, arg1 is handle of file
  13.          MappingHandle := CreateFileMappingA(FileHandle_of_arg2_fullpath,0,2,0,0,0);
  14.          // MapViewOfFile >> Read Only
  15.          FileType := MapViewOfFile(MappingHandle, 4, 0, 0, 0);
  16.          // A lot of loops ((
  17. end;
  18.  
  19. begin
  20.          // Get LocalAppData
  21.          SHGetSpecialForlderPathA(0,PChar(str_LocalAppData),CSIDL_LOCAL_APPDATA,0);
  22.          FuncUnknown(EmptyStr,FullPathWithName);
  23. end.


9bf4_09.07.2013_EXELAB.rU.tgz - www.exe




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 10 июля 2013 01:06 · Поправил: DimitarSerg
· Личное сообщение · #2

maximusorb
Да тут пару фунок переписать всего-то (если цель этот файлик в исходники отреверсить), а так алго давно описано, например тут
http://insecurety.net/?p=299
или
http://driis.dk/2008/12/Introducing-The-Google-Chrome-Password-Recovery-Tool

сам бы помог на дельфу переписать, но у меня поезд через полтора часа

-----
ds


| Сообщение посчитали полезным: maximusorb, Abraham

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июля 2013 03:10
· Личное сообщение · #3

С# и готовые компоненты Delphi это не для меня. Мне нужен именно WinApi, но с циклами обработки на Pascal синтаксисе. Может еще есть какие-то предложения?



Ранг: 33.9 (посетитель), 22thx
Активность: 0.030
Статус: Участник

Создано: 10 июля 2013 10:09
· Личное сообщение · #4

maximusorb пишет:
Может еще есть какие-то предложения?

Конечно есть, про асм почитайте и да, стилер на делфе это моветон.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 10 июля 2013 16:53
· Личное сообщение · #5

А для какой цели это нужно?



Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 10 июля 2013 18:44
· Личное сообщение · #6

Archer пишет:
А для какой цели это нужно?

Вестимо, для саморазвития же
ЗЫ: ну ты как маленький, конечно малварь

-----
xchg dword [eax], eax


| Сообщение посчитали полезным: Abraham

Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 11 июля 2013 11:39
· Личное сообщение · #7

программка-то не работает у меня почему-то, пустой messagebox.

Думаю стоит смотреть сюда
http://www.sqlite.org/fileformat2.html
Файл разбит на страницы, в которых описываются части B-tree. Чем-то напоминает regf формат реестра

| Сообщение посчитали полезным: Abraham

Ранг: 19.1 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 11 июля 2013 18:02
· Личное сообщение · #8

dant3 пишет:
Конечно есть, про асм почитайте и да, стилер на делфе это моветон.

К вашему сведению UFR написан на делфях (версия 6 или 7).

maximusorb пишет:
С# и готовые компоненты Delphi это не для меня. Мне нужен именно WinApi, но с циклами обработки на Pascal синтаксисе. Может еще есть какие-то предложения?

Может вы являетесь vazonez'ом и ищите готовое решение?



Ранг: 19.1 (новичок), 4thx
Активность: 0.010
Статус: Участник

Создано: 11 июля 2013 20:31 · Поправил: OSA
· Личное сообщение · #9

maximusorb пишет:
Не понял из кода Asm циклы считывания и получения размеров строк.


Алгоритм поиска логина и пароля основан на поиске сигнатуры "\x01\x01\x04\x01\x01", которая описывает типы и размерность 5-ти последних полей каждой записи в таблице logins.

Code:
  1. CREATE TABLE logins (
  2. origin_url VARCHAR NOT NULL,
  3. action_url VARCHAR,
  4. username_element VARCHAR,
  5. username_value VARCHAR, 
  6. password_element VARCHAR, 
  7. password_value BLOB, 
  8. submit_element VARCHAR, 
  9. signon_realm VARCHAR NOT NULL,
  10. ssl_valid INTEGER NOT NULL,
  11. preferred INTEGER NOT NULL,
  12. date_created INTEGER NOT NULL,
  13. blacklisted_by_user INTEGER NOT NULL,
  14. scheme INTEGER NOT NULL


У каждой записи есть заголовок. В заловке есть поле, содержащее длину массива, который содержит типы и размерность каждого поля записи. Сразу после этого массива распологаются данные каждого поля друг за дружкой.

Кстати, UFR тоже ищет сигнатуру "\x01\x01\x04\x01\x01".


 eXeL@B —› Крэки, обсуждения —› Чтение баз "Login Data" в Chromium Based браузерах
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати