Я полагаю, вы путаете две вещи. Строки, которые находит ProcessExplorer, также могут быть найдены командой «strings» в Unix. Он просто сбрасывает все сохраненные строки в исполняемый файл, а не в текущую память.
Если вы не скомпилировали пароль пользователя в свою программу, память, выделенная для хранения данных, не должна считываться ProcessExplorer.
Существует множество проблем, которые могут возникнуть. Лучше всего убедиться, что никакой другой код не может быть запущен внутри вашего пространства процессов Начиная с дней виртуальной памяти, каждый процесс получает свое собственное пространство виртуальной памяти, в идеале предотвращая доступ любой другой программы к памяти других программ. Есть способы определить, отлажена ли ваша программа.
Вам также необходимо убедиться, что память, используемая для хранения пароля, никогда не записывается на диск и не выгружается. Этот веб-сайт может указать вам правильное направление. https://www.securecoding.cert.org/confluence/display/seccode/MEM06-C.+Ensure+that+sensitive+data+is+not+written+out+to+disk
[править]
Я хотел бы расширить свой предыдущий пост, говоря о предотвращении повторов.
Если вы действительно серьезно относитесь к полному решению, вам потребуется реализовать двустороннюю аутентификацию с использованием системы PKI. У вашего клиента будет сертификат и ваш сервер. Закрытый ключ клиента будет разблокирован только паролем, который введет пользователь. Это позволит серверу проверить, является ли клиент тем, кем он говорит. Затем клиент проверит, является ли сервер тем, кем он говорит, так же, как и клиент.
Используя эту систему, вы не позволяете кому-либо использовать сервер и пытаться заставить вас отправить ему свой пароль.
Это тема, которую я не могу охватить слишком хорошо на этом веб-сайте. Вам нужно будет исследовать центры сертификации и PKI.
Тогда ваши уязвимости:
1. Пика в текущую память, чтобы извлечь пароль
2. Социальная инженерия
Ссылка: http://en.wikipedia.org/wiki/Public_key_infrastructure