Как работают "раскрыватели паролей под звездочками"?

Наверное глупый вопрос, но вот стало интересно- а как работают программы, раскрывающие пароли, скрытые под звездочками в приложениях Windows? И как защитить пароль от подобных программ?
  • Вопрос задан
  • 3391 просмотр
Решения вопроса 1
@Maccimo
Если речь идёт о стандартном элементе управления Windows, то всё довольно-таки просто.
Такое поле ввода — это обычное однострочное поле ввода, у которого установлен стиль окна ES_PASSWORD

Для того, что бы такое поле ввода показало текст пароля вместо звёздочек, достаточно послать ему сообщение EM_SETPASSWORDCHAR c wParam = 0

Статья по теме в MSDN

Защитить — например, вместо ранее введённого пароля показывать отвлечённый текст с предложением ввести новый пароль. Иными словами — не сообщать элементу управления ранее введённый пароль.
Начиная с какого-то сервиспака WinXP так делают в диалогах удалённого доступа, например.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
На мой взгляд даже звездочки не стоит выводить, если уж совсем действовать «по уму». Потому что примерно оценив сколько звездочек человек стоящий сзади может вытащить жесткий и программой в брутфорсера задать более-правильное правило для подбора. Лучшим решением располагают UNIX-подобные системы по умолчанию они не экранируют ни пароля ни звездочек.
Ответ написан
Комментировать
bobermaniac
@bobermaniac
Чтобы 100% защититься от подобных программ, достаточно реализовать элемент «поле ввода пароля» самостоятельно.
Ответ написан
Комментировать
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Хм. Т.е вручную делаем обработку событий изменения текста в поле, кодируем и уводим полученный текст куда-то во внутреннюю переменную, а в свойство текст пишем нечто вроде «тут вводился пароль», так, получается?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы