pero yo pensé que la clave se guardaba en un archivo, o en un registro
La función de Windows
CryptProtectData deriva la clave a partir de las credenciales del usuario....
si encuentro algún método para conseguir la clave y descifrar cualquier cookie no sabré si asustarme o alegrarme.. pues con un virus así ya te digo..
Para descifrar primero como ya te han mencionado tienes que cumplir el requisito fundamental de haber iniciado sesión en la misma cunta de usuario con la que se encriptaron los datos, o en el caso de que se haya utilizado el valor
CRYPTPROTECT_LOCAL_MACHINE al llamar a la función
CryptProtectData simplemente necesitarías iniciar sesión con cualquier usuario
en el mismo PC, y entonces cumpliendo el requisito es cuando ya puedes llamar a la función
CryptUnprotectData para descifrar...
lo estudiaré a profundidad
Todo lo que necesitas está en la MSDN...
...en la documentación de ambas funciones, y en los enlaces que te llevan a más documentación acerca de los tipos de estructuras que utiliza, etcétera.
Y también tienes ejemplos de utilización (en C):
no sabré si asustarme o alegrarme.. pues con un virus así ya te digo..
Tampoco sería algo como para ponerse a ver las estrellas ya que hoy en dia existe multitud de herramientas dedicadas para obtener las contraseñas de Chrome (y de cualquier otro navegador), tanto aplicaciones de consola para automatizar su obtención, como programas con interfaz gráfica. Aquí tienes dos de ellos por si te sirven:
Y APIS para distintos lenguajes de programación también, por supuesto, en servicios de hospedaje para el control de versiones como por ejemplo GitHub y BitBucket puedes encontrar el código fuente de varias APIS para ese reciso propósito de obtener las contraseñas de Chrome; quizás si buscas encuentres el código fuente de alguna API para el lenguaje en específico con el que estés trabajando y eso probablemente te pueda servir para averiguar como implementar o solucionar aquello en lo que te encuentres atascado...
...por eso, no se si realmente merecería la pena invertir tiempo en el desarrollo de lo mismo que ya han hecho y compartido cientos de veces otras personas, a menos que sea por pura diversión, aprendizaje, o tomárselo como un reto personal de superación. También te digo que la idea en si me gusta, creo que desarrollar un algoritmo de obtención de contraseñas que sea
reutilizable sería buena idea para añadirla en ciertos menesteres, por eso a pesar de lo que dije, en cuanto tenga un rato largo y las suficientes ganas para ponerme a ello yo también me sumaré al carro de desarrollar un código para obtener los logins de Chrome (para VB.NET / C#) y lo compartiré.
Saludos!