Задать вопрос

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

Наверное глупый вопрос, но вот стало интересно- а как работают программы, раскрывающие пароли, скрытые под звездочками в приложениях Windows? И как защитить пароль от подобных программ?
  • Вопрос задан
  • 3466 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 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
Системный администратор, программист, фотограф
Хм. Т.е вручную делаем обработку событий изменения текста в поле, кодируем и уводим полученный текст куда-то во внутреннюю переменную, а в свойство текст пишем нечто вроде «тут вводился пароль», так, получается?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
от 300 000 до 450 000 ₽