proceso de creacion de Keygen

Iniciado por guicamper322, 22 Marzo 2010, 01:37 AM

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

guicamper322

Pues eso alguien me puede explicar como es el proceso de un keygen

MCKSys Argentina

Hola!

Suponiendo que la aplicación sea la "clasica" de ingresar un código de registro, para hacer un keygen, los pasos serían:

- Analizar la rutina del ejecutable que se encarga de verificar el código de registro.
- Aplicarle Ingenieria Inversa, a fin de obtener un algoritmo que nos genere códigos de registro válidos.
- Crear un programa generador de claves (keygen). Esto se puede hacer en cualquier lenguaje de programación.

Espero te sirva lo dicho...

Saludos!
MCKSys Argentina

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


guicamper322

muchas gracias por la respuesta pero mi duda es como saber el algorismo de dicho programa
una pregunta estoy con gdb en linux y e creado un programa simple que te pide un serial para hacer pruevas como se aria el programa para que comparase con distintos seriales
lo siento si me explico mal no duden en coregirme

MCKSys Argentina

Hola!

Pues para sacar el algoritmo, vas a tener que depurar el ejecutable.
El código lo vas a ver en lenguaje ensamblador, por lo que, si no lo sabes, estás frito  :P
Si entiendes algo de ASM, pues sigue el algoritmo con el fin de "ver" qué es lo que está haciendo el programa con los datos que le ingresaste (ya sea Nombre, Serial, etc).

Si puedes interpretar lo que el EXE hace, entonces podrás hallar un Serial que cumpla con las condiciones que exige la rutina. Incluso, puedes hacer un keygen.

Por ejemplo:

Su pongamos que el programa te pide que ingreses un Nombre y un Serial. Como Nombre ingresas MCKSys y como serial 0123456789.

Ahora, el programa, primero verificará el largo del serial ingresado. Este debe ser de 15 caracteres. Aqui ya fallamos, pues hemos ingresado 10, con lo cual, repetimos el proceso anterior y le ingresamos 15 caracteres: 0123456789abcde. Cuando el programa compruebe nuevamente el largo del serial, verá que es 15, con lo que esta "protección" ha sido pasada.

Bueno, por ejemplo, el programa luego puede hacer operaciones sobre el Nombre a fin de generar un código "intermedio". De la misma forma, usa otra (o la misma) rutina para "tratar" el Serial y obtiene otro código intermedio.

Si ambos códigos coinciden, entonces el Serial ingresado es correcto para el Nombre dado. Y, por lo tanto, el programa está registrado  ;D

Bien, esto es sólo una idea muy "superficial" de lo que una rutina de comprobación de Serial puede hacer. Hay MILLONES de métodos distintos de verificar pares Nombre-Serial.

Espero lo dicho te sea útil...

Saludos!
MCKSys Argentina

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


guicamper322

gracias por la ayuda
estoy aprendiendo ahora con el gdb con instrucciones intel antes usaba ollydbg
pero para crack sencillos. estoy creando programas que te pidan seriales en c
y me gustaria ver algunos ejemplos sencillos. para luego intentar saltarlos y crear keygen.
gracias por el aporte voy a probar creando un programa en c que mediante la longitud del nombre comprueve la validez de un serial eso supongo que servira no?

MCKSys Argentina

Pues para empezar si, pero normalmente las rutinas de validación son más complejas...  :P
MCKSys Argentina

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