COMO CRAKEAR POR ESTADO+PORCINO |
CAPÍTULO
IV. Haciendo de Cerrajeros -Generadores de Llaves (KeyGen)- Revival 2.1 |
Mayo 1998
Indice |
INTRODUCCIÓN
Generadores de Llaves ¿Es posible crear un Generador de Llaves? ¿Pos mu bien, pero que necesito pa hacer un Generador de Llaves? ¿Merece la pena hacer un Generador? Generador de Llaves para REVIVAL 2.1: Notas para los lectores |
INTRODUCCIÓN ¡Saludos Familia! Aprovechando las vacas estivales me he decidido por escribir un bonito Generador de Llaves (en inglés KeyGen) para un útil programa de reparación de discos duros y disquetes. Como siempre un poco de Teoría para que podamos entendernos. |
Generadores de Llaves. La primera pregunta que responder es ¿qué carajo es un Generador de Llaves? Suponed por un instante que sois unos de esos programadores perezosos y cegados por el dinero que ha construido un programa protegido con un número de serie. Si alguien desea registrarse debemos pagar una cifra de dinero (pequeña o no) que hará engrosar nuestra cuenta. A cambio debemos de enviarle un número de serie que desbloquee el programa. ¿Hasta ahora todo correcto, verdad?. ¿Pero como demonios se genera un número de serie diferente para cada usuario? . La respuesta es: con un Generador de Llaves.Existen dos tipos de Generadores de Llaves: A- Dependientes de los datos del cliente. B- Independientes de los datos del cliente. El tipo A es el más extendido, el número de serie se genera a partir del nombre del cliente y el de su dirección de correo (por ejemplo). Así dos usuarios tendrán números de serie diferentes, por que en principio sus datos personales son diferentes. El tipo B está un poco en desuso, pero se siguen viendo por que son fáciles de programar (recordad que los programadores son por naturaleza vagos y sin imaginación). El mismo número de serie es válido para cualquier cliente. En estos casos, el programador da un número diferente a los clientes pardillos que compran su producto y reza para que no se lo den a nadie. |
¿Es posible crear un Generador de Llaves? El programa Generador de Llaves está normalmente en el ordenata del programador, entonces, ¿cómo demonios puede un cracker construir un Generador ?. La respuesta es sencilla pero difícil (en general) de realizar. El programa debe verificar que el número de serie que introducimos es válido y ésto sólo puede hacerlo verificando ciertas propiedades que debe cumplir el número de serie y que fueron establecidas por el Generador. ¿Un poco lioso verdad?, dicho de otra forma, el Generador es un codificador de números de serie y en el programa sólo existe un decodificador que descifra el número de serie introducido. Vemos un sencillo ejemplo, suponed que nuestro Generador es el siguiente: NúmeroSerie=(89934*4)*(nombre(5)) Donde nombre(5) es la quinta letra del nombre del usuario. EL número 89934 es el llamado número mágico, un número que es de agrado del programador (quizás el número de veces que le ha su jefe le ha jodido) y que realmente es el corazón del Generador En el programa, para ver que el número de serie es correcto se debe de verificar: (NúmeroSerie/(4 /nombre(5)) = 89934 Como podéis apreciar, lo que hay en el programa es la inversa del Generador, por tanto si invertimos la inversa podemos obtener el Generador de Partida. No os engañéis, este es un Generador sencillo, lo normal es que esté ultra enrevesao , lleno de números mágicos y operaciones aritméticas exóticas. Normalmente, las rutinas de verificación realizan ciertas comprobaciones sobre la password de entrada. Generalmente pasan a mayúsculas y buscan ciertos caracteres en ciertas posiciones. En caso de no encontrarlos la password no es válida. Esto da pie a un truco mu útil pa localizar di una forma directa la rutina. Pero esto lo veremos más adelante. |
¿Pos mu bien, pero que necesito pa hacer un Generador de Llaves? 1.- Lo primero es aislar el código del programa que verifica el número de serie.Además del código que las funciones que son llamadas desde la rutina de verificación (pa Saber que narices hacen). Normalmente las rutinas de verificación hacen uso de pequeñas rutinas: convertir a mayúsculas,convertir letras en números... 2.- Un conocimiento exhaustivo, repito, exhaustivo del la rutina de verificación. Debemos saber TODO lo que hace y porqué lo hace. Recordad que tenemos que invertir su funcionamineto y esto no lo podemos hacer si no sabemos como funciona. Este es el punto más delicado y el que consume más tiempo. Dependiendo de las paranoias del programador podéis tardar horas o semanas. Se necesitan conocimientos de ensamblador y de operaciones aritméticas binarias 3.- Invertir el funcionamineto del Generador y crear con un compilador, por ejemplo de C nuestro propio Generador. |
¿Merece la pena hacer un Generador? La respuesta es depende. Hacer un Generador no es nada sencillo, consume mucho tiempo y habilidades. Es mucho más fácil parchear la rutina de verificación para que acepte cualquier cosa.Pero las ventajas de crear un Generador son muy importantes, primera y ante todo es que realmente se está cumpliendo con la filosofía crack (ingeniería inversa) al comprender y transformar el programa para que adapte a nuestras necesidades. Segúnda ventaja son los conocimientos que se captan sobre todo a nivel ensamblador y de operaciones aritméricas con bits. Tercera y no más importante la satisfacción del trabajo artesano, bien hecho. Esa satisfacción que nos hace seguir adelante. La cuarta ventaja tiene que ver con la historia del Software. Puedes "coleccionar" las protecciones de tu programa favorito y ver la evolución de su software. Y como quinta un fin práctico, al final del proceso se obtiene un número de serie válido, lo que te convierte en un usuario "legal" y problamente no tengas que crakear la próxima versión. |
Generador de Llaves para REVIVAL 2.1
Objetivo: REVIVAL 2.1
Este es un interesante programa que te permite recuperar ficheros borrados de discos
duros y disquetes que soporta FAT32 y NTFS. Tiene una típica ventana de registro a partir de
la cual podemos acceder directamente a la rutina de verificación de la pass. Esta rutina es
extremadamente sencilla e independiente de los datos del usuario, por eso ha sido la
elegida como demostración. |
Utilizo números aleatorios (random) para generar un número de serie diferente cada vez que se ejecute e programa. Una última curiosidad, donde creereis que guarda nuestra pass el programa. Si lanzais el La utilidad regmon (analiza todos los accesos al Registro dels Sistema) con el programa, podréis apreciar que se accede a "HKEY_LOCAL_MACHINE\SOFTWARE\Revival\Revival\2.0\Serial" Poco imaginativo, ¿verdad?. Podéis modificar este número para evitar registraos y probad Con nuevas pass. |
Notas para los lectores. 1.- Los mensajes del tipo "Hazme el crack para ....", "Dime como de crackea....", "Dime donde puedo encontrar..." son automáticamente ignorados. El objetivo de estos artículos es enseñar a crackear no enseñar a ser unos llorones ineptos que sólo saben mendigar.2.- Sólo responderé a preguntas teóricas sobre cracks, indicando algunas pistas que faciliten la labor. 3.- Narices, escribid artículos sobre los programas que crackeeis. De nada sirve lo que aprendéis si no lo repartís, se os pudre en el cabeza, palabra. 4.- Lamento no haber contestado a ciertos mails interesantes. Desde aquí mis excusas. 5.- Si os ha servido para algo mis artículos, no seáis vagos y mandad un mail indicándomelo. Mr.PinK & WKT ( WHISKEY KON TEKILA ) Esperamos vuestras opiniones, sugerencias y ensayos en estadoporcino@hotmail.com En breve analizaremos tipos de protecciones mucho más interesantes. Recordad bebed de la fuente, buscad a +ORC en la red. |