Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: moikano→@ en 14 Diciembre 2010, 12:51 pm



Título: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: moikano→@ en 14 Diciembre 2010, 12:51 pm
Poniendo el siguiente código en un .bat

Código:
echo %random%

 Y apretando el .bat seguidamente sale un numero que se va incrementando poco a poco, en mi caso los millares se quedaban un buen rato, lo centenares también, pero las unidades y las decimas cambiaban cada vez que lo apretaba.

A donde quiero llegar? Pues queria saber de donde cojerá el numero base para hacer el numero aleatorio la variable de entorno %random%.

Mirando la serie de numero que me sale creo que tiene que ver con la hora, porque va en aumento mas o menos por segundos, y nunca disminuye.

Si alguien sabe algo de esto se lo agradeceria. Es tan solo por curiosidad.


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: Novlucker en 14 Diciembre 2010, 12:58 pm
Supongo que tal vez si puede utilizar la hora como semilla, pero igual no veo que pase lo que comentas

28001
3088
18589
2525
24407
22886
26931
14221
11307
25727
6505
16292
8701
20492
2559
1392
30253
7672
3840
16224
11716
1599
27463
9332
25872
12291
30017
3570
14991
221

Saludos


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: moikano→@ en 14 Diciembre 2010, 13:02 pm
No se si lo habrás echo como yo, pero para verse como digo yo, con un aumento poco a poco, es abrir el batch repetidas veces, no hacer que el random se ejecute repetidas veces dentro del batch.

Este es el código qu e usado para sacrlo a las 13:00

Código:
echo %random% >> random.txt

Solo con esa linea y apretando doble click varias veces me a sacado esto.

9559
9562
9566
9569
9572
9575
9579
9582


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: leogtz en 14 Diciembre 2010, 15:03 pm
Que yo sepa no hay especificación técnica sobre la semilla del RANDOM.  :-\


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: FJPPitta en 14 Diciembre 2010, 17:24 pm
Saludos puse el siguiente bat y lo unicie a las 10:22am

Código:
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt
echo %random% >>random.txt

y me dio como resultado esto:

Código:
27470 
31414
9464
5936
15938
7628
22301
24777
10906
16792
25726
13464
2199
13222
8583
7720
23333
14978
3232
27665

No se ve relación alguna entre un número y otro, ni idea entonces de cual sera la semilla para este generador.

Sin embargo,


si en el bat solo se deja una linea y lo ejecutas varias veces el número aumenta progrsivamente así como te sale.

Código:
echo %random% >>random.txt

Código:
28021 
28025
28025
28028
28061
28064

que curioso ¿no?

Cómo ven el 28025 se repite 2 veces, si al bat de 1 linea lo ejecutas tan rapido como puedas dar click en el raton se repite mas veces

Código:
28462 
28462
28462
28462
28466
28466
28466
28469
28469
28469
28472
28472
28472
28475
28475
28475
28475


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: Novlucker en 14 Diciembre 2010, 17:37 pm
No lo había comentado, pero había visto algo similar a eso hace un rato, si pones el echo %random% dentro de un bucle, te tira siempre el mismo número :huh:

Saludos


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: moikano→@ en 14 Diciembre 2010, 18:47 pm
Yo creo que cambia a los segundos, a lo mejor no basa su numero en el tiempo, pero yo creo que si que basa el cambio de cifra a los segundos.


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: Darioxhcx en 14 Diciembre 2010, 23:07 pm
%date% %time% %random%

fijate si encontras algo como para pensar que la semilla es la hora  , pero no se :/


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: moikano→@ en 15 Diciembre 2010, 00:47 am
No tiene que ver, los randoms toman cifras desvinculadas de las otras variables, lo único que comparten, a mi parecer, es de donde vienen, que son variables de entorno.

De echo hay randoms que cogen la primera cifra del tamaño de algún archivo del sistema y le aplican las operaciones necesarias (multiplicaciones, divisiones,...) para sacar la cifra aleatoria.


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: leogtz en 15 Diciembre 2010, 07:15 am
Lo más lógico es que tomara la hora del sistema. Hay veces en que se toma el PID del proceso.

Nov, que arroje el mismo valor se puede deber a que no se usa !var!.


Título: Re: [Batch] Sabeis en que se basa el numero aleatorio de la variable %random%?
Publicado por: Germaniac en 4 Enero 2011, 05:55 am
Parece ser que la semilla random si se basa el hora y fecha porque probando con este batch:

Código:
@echo off
for /l %%i in (1,1,100) do cmd /c echo.%%random%% %%time%%
pause

La salida que produce es algo similar a esto:

Código:
27481  5:38:52,89
27481  5:38:52,95
27484  5:38:53,01
27484  5:38:53,09
27484  5:38:53,15
27484  5:38:53,23
27484  5:38:53,29
27484  5:38:53,82
27484  5:38:53,90
27484  5:38:53,96
27487  5:38:54,03
27487  5:38:54,09
27487  5:38:54,15
27487  5:38:54,23
Presione una tecla para continuar . . .

Donde se puede ver que el valor del random va cambiando conforme los segundos.

Ó tambien pueden probar ejecutando el siguiente batch:

Código:
@echo off
for /l %%i in (0) do cmd /c echo.%%random%% %%time%%

E ir cambiando la hora y la fecha del sistema y veran que existe algo de relación con el valor que da el random.

Referencia:
Código:
http://blogs.msdn.com/b/oldnewthing/archive/2010/06/17/10026183.aspx