como descubrir el algoritmo y crear un keygen

Iniciado por greenvati, 13 Diciembre 2007, 04:55 AM

0 Miembros y 1 Visitante están viendo este tema.

greenvati

Hola cual es el truco o procedimiento para desarrollar un Keygen para programas, basados en algoritmos, es decir como se descubre un algoritmo de un programa x para que sea valido y todo eso.

como se hace todas esas combinaciones.

Saludos

Ferсhu

y simple miras el codigo vez lo q hacee y creas un programa q cree numeros en base a ese algoritmo. o q haga lo inverso del algoritmo depende como sea.


ejemplo tonto:

miras el algoritmo y descubris q hace algo asi:


leer (key)

if (key%789456==0) Registrado
else no registrado




Entonces el keygen seria..., hay muchas formas, pero eleji esta:


key=random(10000000)// tira numeros aleaterios
if (key%789456==0) mostrar(key)


y te va tirando codigos validos para el programa q use ese algoritmo

Nota: eso no es ningun lenguaje jaja aclaro  :P


Saludos!!

Shaddy

jajajajja tambien podrías hacer un keygen que hiciese..

Citar
n = random(100);
key = 789456*n;
printf ("Clave: %ld",key);

xDxDxD en vez de crear 2000 claves hasta que sean múltiplos del número, generas un randomizado del número y lo multiplicas no xd?

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

Ferсhu

claro eso es a lo q yo me referia con...

Citarcreas un programa q cree numeros en base a ese algoritmo. o q haga lo inverso del algoritmo depende como sea.

yo hice como el algortimo y vos como la inversa.

q es obvio q es mejor el segundo ya q no desperdicia tiempo.

Shaddy

y si, que importa si el resultado es igual no? :O), somos crackers :P, todo vale :P.

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

x4uth

el resultado no es =, el de FeRcHu podria estar toda la vida y no darte un serial valido, xk si la fuerza bruta es fea, si no la haces de manera sistematica es peor... en cambio la otra solucion te daria un serial en nanosegundos.

Shaddy

Cita de: x4uth en 15 Diciembre 2007, 21:42 PM
el resultado no es =, el de FeRcHu podria estar toda la vida y no darte un serial valido, xk si la fuerza bruta es fea, si no la haces de manera sistematica es peor... en cambio la otra solucion te daria un serial en nanosegundos.

No quiere decir que sea ni mas listo ni mas wapo.. simplemente que mi solucion es mejor :D:rolleyes:
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

Schencho

Tengo una duda parecida, ¿a partir de un número X de serial válidos se puede obtener el algoritmo que ha generado dichos serial? Es decir, el proceso inverso. ¿Exite algún programa que compare dichos serial y pueda generar ese algoritmo? ¿Cuantos serial válidos harían falta para encontrar el algoritmo? Porque supongo que si se puede hacer, cuantos más serial tengamos mejor.

Imagino que no es lo mismo tener 5 serial válidos de orden XXX-XXX-XXX que 5 serial de XXXXX-XXXXX-XXXXX-XXXXX. Cuantas más combinaciones se pueden generar, más serial válidos serán necesarios. Realmente estoy lanzando suposiciones porque no tengo mucha idea, pero pienso que se debería poder hacer el proceso inverso. Pasar de un número X de serial al algoritmo. Es evidente que lo mejor sería tener todas las combinaciones posible para hacerlo, claro la dificultad está es obtener el algoritmo partiendo de unos pocos serial.
INTEL P4 HT 3.4MHZ(3.75), MEMORIA 1024MB DDR, ATI RADEON X1950PRO 512MB AGP, 2 DISCOS 300 GB
---
I7 920, 2GBX3 KINGSTON, HD 5850, HDD 1TERA

MCKSys Argentina

Hola!

El tema es que si no le aplicas Ingenieria Inversa a la rutina que comprueba el serial, normalmente es CASI imposible determinar el serial correcto.

Por ej, si uno de los seriales validos tiene 6 caracteres, entonces tendras todas las combinaciones de caracteres imprimibles elevados a la 6 (lo cual es un numero muy grande). Si un proceso de brute force demoras 1 segundo por cada comprobacion, en unos años tendras tu serial...  :P

No hablar si el serial tiene un diccionario (listado de caracteres validos) o si para cada usuario/maquina hay 1 serial solamente. Con eso, te pasarias ese tiempo buscando 1 sola combinacion de caracteres.

En fin, lo mejor es analizar el programa, sacarle el algortimo, reversearlo y despues hacer el keygen...

De ultimas, siempre puedes parchear o hacer un loader  ;)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Schencho

MCKSys Argentina no entiendo muy bien lo que quieres decir, ¿que es practicamente imposible hacerlo?. Por ejemplo, si yo dispongo de 10 serial válidos que activan un programa, ¿a partir de esos 10 serial no podría sacar el algoritmo que los ha generado?
INTEL P4 HT 3.4MHZ(3.75), MEMORIA 1024MB DDR, ATI RADEON X1950PRO 512MB AGP, 2 DISCOS 300 GB
---
I7 920, 2GBX3 KINGSTON, HD 5850, HDD 1TERA