Karpoff Spanish Tutor 1999-2001  

Programa

Puntotek Gold v 1.5


 

PROTECCION

Molesta Nag pidiendo el serial a cada paso q das :D

Vamos a Sacar un Serial y a crear un KEYGEN

Descripcion Se trata de un programa para generar patrones de punto de cruz. Un regalillo para mi novia, que le gusta. XD
Dificultad Facil
DOWNLOAD http://www.mediateksis.com/puntodecruz.htm
Herramientas Smartcheck y Sentido Comun. El Smartcheck esta en la page de Karpoff, lo segundo no se de donde bajarlo xD
CRACKER ^DeStRoY^   FECHA: 18/11/2001

 

 INTRODUCCION

En primer lugar decir que solo llevo un par de meses Crackeando, y esta es la primera vez que uso el Smartcheck. Si no me explico bien, lo siento...y todo hay que decirlo, NUMEGA ES LA LECHE! xD

Bien, empecemos. Al cargar el programa vemos que se nos pide un numero de serie para registrarnos y quitar la molesta NAG. Si, esa con las tarjetas de credito! Pos na, ahora que tenemos el objetivo, solo falta idear la estrategia de ataque. Yo elegi el Smatcheck y ahora veremos el porqué.

Ah, saludos al SuRfEr (Nau) y un saludo muy especial a mi novia ^StOrM^ de la que me siento muy orgulloso! Bezitoz mi mol :*

 

 AL ATAKE


Despues de la Sensibleria y los cariñitos pos viene el trabajo, ok? Veamos. En primer lugar podemos abrir el ejecutable con el Windasm, que para mi es el primer paso en la mayoria de los casos, y lo unico que nos resulta sospechoso (al menos a mi) son dos cadenas muy largas.
*NOTA: Usar el Wdasm con las librerias para Visual Basic xD

Me pregunte ¿Seran estas cadenas el nombre y el serial respectivamente? Y tras probarlo me conteste NI DE COÑA! Entre otras cosas porque son muy largas xD Pero como parecen MUY sospechosas, nunca esta de mas echarles una copia y tenerlas a mano, por lo que pudiera pasar. Las cadenas son estas:

cadena1 = "AÁB45CÇ2DEÉFGHIÍJKLM9NÑ08OÓPQR67S3T1UÚVWXYZºª"
cadena2 = "KX0DLTQ1HORE2YJPBM34CWÑIV59RZ8A7UF6GN"

Es obvio que algun papel tienen que jugar en la generacion de las claves, asi que vete calentando eso del sentido comun, que en breve nos hara falta :) Salimos del Windasm y cargamos el ejecutable con el SmartCheck. Utilizar el Sice aqui seria bastante mas complicado, ya que esta en VB y las cadenas se guardan de manera distinta.

Bien, ponemos a funcionar el Smartcheck y vemos como se generan una serie de Timer (que esto viene a ser el tiempo de espera cuando el logotipo del programa esta en pantalla), y luego sale nuestra ventanita en cuestion. Volvemos al Smartcheck y antes que nada miramos el Inicio_Load. Mmmm, hay un acceso a un archivo un tanto sospechoso. En realidad a 2: "reg.cd" y a "cd.cd". Podemos cerrar el Smartcheck y crear esos dos archivos y llenarlos de numerejos...pero no pasa nada :(
Vemos tambien que carga la cadena1. Parece que no vamos tan mal encaminados despues de todo.

De cualquier forma, no esta aqui lo que buscamos. Si miramos en el ultimo Timer que se genera, vemos que se crea un Formulario llamado Registrar.Form. Sospechoso no?? Nos vamos acercando a pasos agigantados.
Pos bien, si entramos en Registrar.Show vemos un monton de Timers. Y cuanto mas tardemos mas veremos, ya que no parara hasta que introduzcamos un nombre y un numero. Bueno, vamos a probar:

PASO 1 - Encontrar un Serial Válido

Metemos un nombre, por ejemplo y en mi caso "^DeStRoY^" y como numero, pues nada mas facil que 1111-2222-3333-4444 y vemos lo que pasa. Pues que se quita la ventana... Tan facil? NO, porque esa ventana estará ahi a cada paso que demos. Pero volvamos al Smartcheck a ver como ha repercutido nuestro nombre :)
Sabemos que se ha producido en evento Click en un Boton (Nuestro boton "Continuar") asi que buscamos ese evento en al final de la lista de Timers dentro de Registrar.Show, y EUREKA, hay un Command1.Click. Sobra decir que entramos en el ;)

Ahora vemos como recoge nuestras cuatro series de numeros que forman el serial, nuestro nombre, carga la cadena1 y concatena todos los numeros, los pasa a mayusculas con UCASE (lo que hace pensar que en el serial habran letras:D) y lo mismo con la cadena1. Luego nos devuelve la longitud de nuestro nombre, en mi caso 9.

A continuacion viene la parte mas sospechosa: Coge cada uno de los caracteres del nombre, y realiza algun tipo de operacion con la cadena1, y devuelve un valor. Luego con la cadena2 y pasa al siguiente caracter. Y AQUI es donde entra en juego el sentido comun. Volveremos a esta parte mas adelante, cuando queramos crear el KEYGEN, de momento nos vale con conseguir una clave válida.

Volvemos a cuando compara con la cadena1. Lo que hace es devolvernos el lugar donde se encuentra el caracter de nuestro nombre DENTRO de la cadena1. De momento puede resultar confuso, pero pasemos de esto un momento y vamos al final del Command1.click a ver que hay.

Realmente sospechoso, los dos ultimos elementos (dos TRIM) son NUESTRO SERIAL y una serie de numeros y letras (K3EUÑMJMK). Pero claro, esta cantidad de letras no puede ser el serial correcto, porque no hay suficientes para llenar los 16 espacios del serial... Un momento, ¡¡La cadena tiene la misma longitud que nuestro nombre!! ¿¿No es sospechoso??. Para asegurarnos Volvemos al punto 1 pero ahora introducimos un nombre mas largo. ¿Que de cuanto? Joder, pensad un poco! :D Si miramos de cuantos caracteres es el numero de serie, vemos que de 16. ¡¡Pues un nombre de 16!! Ademas, la primera y ultima letra del serial que vimos arriba son iguales, (K3EUÑMJMK) y las primera y ultima letra de mi nombre son "^", que no esta en la cadena1... Sospechoso tambien, eh? Probemos con el nombre "^^^^^^^^^^^^^^^^" y como password "KKKKKKKKKKKKKKKK" yyyyyy BIEEEENNN. El mensajillo de que lo hemos registrado. Pero por qué? Pues porque el caracter "^" no se encuentra en la cadena1 y por lo tanto lo pone en el lugar 0, y la letra que está en el lugar 0 en la cadena2 es la K. Facil, no? Otra cosa, miremos ahora el contenido de reg.cd. Ahi está nuestro serial! :)

Pues eso, si queremos cambiar el seria, borramos el archivo REG.CD y probamos con otro, luego vamos al SmartCheck y miramos la cadena al final y listo, tenemos nuesto KEY listo y calentito. Por ejemplo, para el nombre "¡¡¡SOYELMEJOR!!!" seria "KKKWDF8FZM4G3KKK" y vemos como el tema de las K se repite. :)

PASO 2 - Realizar el Keygen

Ahora estudiemos COMO funciona para asi poder crear el Keygen. Bien, para ello lo mas facil es repetir los pasos del PASO 1 y copiar el serial, para ver asi COMO lo ha generado. Pos bien, como consejo poned por nombre "AAAABBBBCCCCDDDD", o al menos asi lo hice yo ;) y nos da como resultado (en el smartcheck) el serial "XDQR5QRJ7MO1YZPE". Bien, los copiamos los dos y ademas copiamos la cadena1 y la cadena2. Vamos a estudiar! :)

nombre = "AAAABBBBCCCCDDDD"
serial = "XDQR5QRJ7MO1YZPE"
cadena1 = "AÁB45CÇ2DEÉFGHIÍJKLM9NÑ08OÓPQR67S3T1UÚVWXYZºª"
cadena2 = "KX0DLTQ1HORE2YJPBM34CWÑIV59RZ8A7UF6GN"

Ahora tenemos que mirar en el SmartCheck los valores que va devolviendo al mirar en la cadena1 (si, donde dije que volveriamos!) que son algo asi:

Vemos que devuelve para "AAAA" 1,3,6 y 10

Y para B 25, 43, 64 y 88

Q CASUALIDAD!! SON LAS POSICIONES DE LAS LETRAS DEL SERIAL EN LA CADENA2!!! xD

Pero ahi no acaba la cosa, ya que si probamos con otro nombre el invento no funciona, o al menos no de la misma manera. La cuestion es que hay una evolucion lógica para hallar estos valores, y vamos a estudiarla.

Primero Busca la letra en la cadena1 y cuando la encuentra guarda la posicion (En el caso de la A es 1), despues multiplica la posicion donde se ha encontrado por la posicion que ocupa la letra en el nombre, y asi hallamos una cifra que sera clave para encontrar nuestra letra para el serial. PERO AHI NO ACABA TODO!! Ya que cada vez que buscamos una letra en la cadena2, la proxima vez que busquemos, deberemos empezar a mirar en la posicion donde acabamos antes!! No se si me explico, pero el esquema de busqueda se resumiria en esta operación:

Pos_LetraEnCadena2 = (Pos_EnElNombre * Pos_EnCadena1) + Pos_LetraEnCadena2

Asi, para nuestro serial sería (Recuerda q en VB las cadenas empiezan a contar por 0):

A1 -> Pos_LetraCadena2 = (1*1)+0 = 1 (X)
A2 -> Pos_LetraCadena2 = (2*1)+1 = 3 (D)
A3 -> Pos_LetraCadena2 = (3*1)+3 = 6 (Q)
A4 -> Pos_LetraCadena2 = (4*1)+6 = 10 (R)
B1 -> Pos_LetraCadena2 = (5*3)+10 = 25 (5)
B2 -> Pos_LetraCadena2 = (6*3)+25 = 43 (Q)
B3 -> Pos_LetraCadena2 = (7*3)+43 = 64 (R)
B4 -> Pos_LetraCadena2 = (8*3)+64 = 88 (J)

Y asi sucesivamente. Como nota, piensa que habra veces en que el lugar a buscar sea mayor que el tamaño de la cadena2. Para resolver esto, no tienes sino que restarle el tamaño de la cadena2 hasta que sea menor. Por ejemplo, si el tamaño de la cadena es 37, para hayar B4 haz:

B4= B4-37=51
B4=51-37=14 (J)

Y eso es todo, espero que lo hayas entendido. Si tienes alguna duda o si te resulta util este tutorial, te agradecería que me escribieras a bkrom2@hotmail.com.

Agradecimientos a Karpoff por esta peaso Page que ayuda a le gente que esta empezando, y a toda la gente del kanal #crackers que nunca me contestan cuando pregunto :Þ

Aviso que este es tanto mi primer tutorial como mi primer keygen ;) Lo siento si no he sabido explicarme!
Saludos a la peña del Klan [KTDN] de Tenerife para el Counter Strike. XD

Y a FrOdO el Cheto xDDD

^DeStRoY^
 

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com