Creo que está confundiendo dos cosas. Las cadenas que ProcessExplorer encuentra también se pueden encontrar mediante el comando "strings" en Unix. Simplemente vuelca todas las cadenas almacenadas en un archivo ejecutable, no en la memoria actual.
A menos que haya compilado una contraseña de usuario en su programa, la memoria asignada para almacenar los datos no debe ser leída por ProcessExplorer.
Existen numerosos problemas que pueden ocurrir. Su mejor apuesta es asegurarse de que no se pueda ejecutar ningún otro código dentro de su espacio de proceso. Desde los días de la memoria virtual, cada proceso tiene su propio espacio de memoria virtual, idealmente impidiendo que cualquier otro programa acceda y se meta con la memoria de otros programas. Hay formas de detectar si su programa está siendo depurado.
También debe asegurarse de que la memoria que está utilizando para almacenar la contraseña nunca se escribe en el disco o se descuelga. Este sitio web puede orientarlo en la dirección correcta. https://www.securecoding.cert.org/confluence/display/seccode/MEM06-C.+Ensure+that+sensitive+data+is+not+written+out+to+disk
[editar]
quería ampliar mi anterior post hablando de prevención de la repetición.
Si realmente quiere una solución completa, deberá implementar la autenticación bidireccional utilizando un sistema PKI. Su cliente tendrá un certificado y también lo hará su servidor. La clave privada del cliente solo se podrá desbloquear con una contraseña que el usuario ingresará. Esto permitirá que el servidor verifique que el cliente es quien dice ser. El cliente verificará que el servidor es quien dice que es del mismo modo que el cliente.
Al usar este sistema, evita que alguien se posesione como servidor e intente conseguir que le envíe su contraseña.
Este es un tema que no puedo cubrir demasiado bien en este sitio web. Deberá investigar Autoridades de certificación y PKI.
Sus vulnerabilidades son entonces: 1.Alcanzando un máximo en la memoria actual para extraer la contraseña de ingeniería social 2.
Referencia: http://en.wikipedia.org/wiki/Public_key_infrastructure
AFAIK, en Windows hay funciones ReadProcessMemory() y WriteProcessMemory(), que le permite leer y escribir la memoria de otro proceso. Por lo tanto, "evitar idealmente cualquier otro programa" en realidad no funciona (( – Septagram
http://msdn.microsoft.com/en-us/library/ms680553%28v=vs.85%29.aspx describe la protección de permisos previos, si eso ayuda – Reinderien