PRODIGY: Проблема с DPAPI и паролями Chrome
PRODIGY
Member
Автор темы
12/24 ответов
7 лет на iXBT, с августа 2017
Инфо Ответить
P
PRODIGY MemberАвтор темы
4 года назад / 21 мая 2021 09:51
Всем привет! Пытаюсь расшифровать пароли "cookies" браузера Chrome(v80), но функция CryptUnprotectData() всегда возвращает ошибку ERROR_INVALID_DATA (0х0000000D). Может кто-нибудь подскажет, что я делаю не так?

Известно, что в этих браузерах, к шифрованию паролей был добавлен ключ, который нужно передать в параметре "entropy" функции CryptUnprotectData() при расшифровке пароля. Закодированный в Base64 ключ хранится в файле Json, и убрав у него сигнатуру "DPAPI" я расшифровал его той-же CryptUnprotectData(). Функция вернула ОК=1, и т.к. она не только расшифровывает, но и проверяет целостность структуры BLOB (с размером и адрес ключа), то можно сделать вывод, что ключ у меня валидный.

Теперь, на этапе декодирования самого пароля из базы SQLite, в первом аргументе CryptUnprotectData() я передаю структуру BLOB пароля, а в третьем - BLOB ключа, но функция постоянно возвращает FALSE. Ясно, что неправильно оформлена структура BLOB пароля из базы, но устранить ошибку не могу.

Если я правильно понимаю, то пароль состоит из 4-х частей: сигнатура "v10", 12-байтное поле IV, далее сам пароль переменной длинны, и в хвосте - 16-байтный "код аутентификации". Вопрос - с какого смещения нужно передавать этот пароль функции CryptUnprotectData()? Пробовал по всей длине, потом без сигнатуры v10, без IV (с соответствующей правкой длинны в BLOB), но всегда одинаковая ошибка.

Вот так выглядит всё поле с паролем в базе-данных SQLite, и эти 4 составляющие я выделил в блоки - красный сигнатура, зелёный IV, потом данные, и синий = код-аутентификации. Пишу на ассемблере и буду благодарен за любые советы.
К сообщению приложены файлы:
Bee Logger
Junior Member
1/1 ответов
3 года на iXBT, с июня 2021
Web-страница
Инфо Ответить
B
Bee Logger Junior Member
4 года назад / 07 июня 2021 18:22
PRODIGY
ты решил проблему?
PRODIGY
Member
Автор темы
14/26 ответов
7 лет на iXBT, с августа 2017
Инфо Ответить
P
PRODIGY MemberАвтор темы
4 года назад / 08 июня 2021 10:12
Bee Logger
ты решил проблему?
нет..
Ваш ответ:

Список кодов форума
Список всех смайликов закрепить окно ответа
Нет значка Нет значка Р’РѕС‚ тут! Лампочка Восклицание Р’РѕРїСЂРѕСЃ Класс! Улыбка Злость Огорчение РџРѕРіРѕРІРѕСЂРёРј? Краснею Подмигивание Ругаю РћРґРѕР±СЂСЏСЋBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).