¿Podemos capturar la salida de la función CryptGenRandom de Windows? Supongamos que una aplicación utiliza CryptGenRandom, como usuario podemos saber cuál es el número aleatorio generado y dado a la aplicación
Si tiene control sobre el entorno en el que se ejecuta la aplicación, básicamente, si tiene acceso a la cuenta en la que se ejecuta la aplicación, entonces puede observar todo lo que hace. Simplemente ejecute la aplicación bajo un depurador y coloque un punto de interrupción o un rastreo en las llamadas a CryptGenRandom
.
Si no tiene control sobre la ejecución del programa, entonces no puede capturar la salida de esta o cualquier otra función. La alternativa sería predecir la salida. No se puede predecir la salida de CryptGenRandom
, porque es un generador de números aleatorios de calidad criptográfica y no está implementado tan mal como para estar completamente roto. El punto central de la aleatoriedad de calidad criptográfica es que es impredecible. La única forma de predecir el valor sería tener acceso a todas las fuentes de entropía de la máquina y saber todas las veces que se llama a CryptGenRandom
para que pueda recrear el estado del RNG. En la práctica, si puede hacer eso, puede ejecutar un depurador.
Lea otras preguntas en las etiquetas windows key-generation entropy