You may find it helpful to read our articles on Windows security and password recovery examples. Video section contains a number of movies about our programs in action
Доброго времени суток! Появилась задача автоматизировать смену паролей в Outlook. Мне удалось расшифровать пароль, но цель не в этом, мне нужно зашифровать пароль обратно и записать в реестр! Ничего не получается, прошу помощи. Может подскажет кто-нибудь пожалуйста.
Можно попробовать, но структура и место хранения пароля зависит от версии Outlook. Поэтому тут возможны варианты.
Пароль современных версий Outlook шифруется при помощи DPAPI и хранится в виде простого двоичного блоба. Поэтому все, что вам нужно, это зашифровать новый пароль при помощи DPAPI и записать полученные двоичные данные в то место, где хранится старый пароль.
Спасибо за ваш ответ. Место хранения пароля мне известно, шифрую при помощи DPAPI и все вроде бы правильно. Смущает то что при просмотре блоба в реестре, просматривается строка "IMAP Password", не пойму что с ней делать. Расшифровка такого блоба происходит удачно, обратное нет (
Строка "IMAP Password" это не пароль, это описание данных. Он не несет никакой нагрузки, кроме пояснительной. Возможно, он как-то используется в Outlook, а может просто игнорируется.
На вашей картинке видно, что впереди DPAPI блоба стоит один лишний байт (0x02). В некоторых версиях Outlook это тип шифрования. Т.е. вам нужно в новом DPAPI блобе вручную вставить вначале байт 2 (в каком-нибудь hex редакторе). Только после этого записать новый блоб в реестр.
Да, первый байт - тип шифрования, его отбрасываем. В общем все оказалось просто, вы были правы строку "IMAP Password" игнорим. Еще выяснил что в исходную строку для пароля нужно добавить "\\0", т.е. например хотим зашифровать пароль "123" тогда в функцию передаем "123\\0" и outlook принимает этот пароль. Спасибо за подсказки. Тему можно закрывать.
То есть, если пароль без финального нуля, то он не работает в Outlook? Забавно. Если это так, интересно было бы посмотреть, как там вообще ноль проверяется. Ошибка или так и задумано?
Я ради интереса проверил несколько почтовых учеток, все верно: везде пароль с завершающим нулем.