PROGRAMA

      

PROTECCION

     

HERRAMIENTAS

Joe Cracker Crackme 6

DESCARGA

 

Sin protección

 

Olly Debugger

DeDe

 

 

 

 

 

     NIVEL: Cavernícola

 

 


 


Lo deja claro Joe, sobran las palabras.



No es que tenga preferencia por Joe, aunque me gusten sus crackmes como dije en el anterior capitulo, pero de los muchos crackmes que he revisado creo que este también tiene su interés para el curso pues toca el tema del registro de Windows que era un tema que yo quería que se viera en el curso.

Vemos el crackme y el consejo de Joe



 
Hay un botón que dice reg number, lo pulso por curiosidad y me llama vago y me ordena que lo crackee


Pasemos a analizar el crackme con DeDe




Analizo con Peid y me dice que esta en Delphi y sin comprimir/proteger
Lo cargo en DeDe
En procedures miro el TPrincipal



Me apunto esas dos direcciones que me interesan para lo que quiero mostraros en este capitulo

Miro después el TRegist



Apunto esa dirección (
46D838) después de mirar que corresponde al botón con el Caption registrar



Voy a Olly y pongo BPs en las tres direcciones que apunte, las cuales corresponden a tres botones



Vamos a cazar el serial

En Olly F9 introduzco mi nombre y numero habituales



Al pulsar el botón para en uno de los BP, el que corresponde al botón con el Caption registrar



Voy bajando poco a poco con F8, al llegar a 46D873 veo que aparece mi nombre en la ventana registers



Sigo bajando (F8) y poco después veo mi numero en la ventana registers



Justo debajo un CMP y un salto condicional, miro en el CMP y compara ebx con eax



Voy a Olly a la command bar (plugin command bar) y escribo: ? valor de eax y pulso Enter
A la derecha me aparece los valores hex. dec y ascii, veo que el valor decimal corresponde a mi numero 15151515



Hago lo mismo con el valor de ebx y apunto el valor decimal que apareció 1858985



Pruebo a registrarme pues ya tengo un poco de experiencia y esto lo veo claro



Me pide reiniciar el crackme tened esto en cuenta a la hora de practicar con programas comerciales (si es que lo hacéis)
Al reiniciar pulso en reg number y aparece el serial que encontré y vemos arriba que el Caption del form (ventana) cambio de unregistered a registered
Crackme crackeado




El segundo botón

Aunque lo tenemos crackeado haremos caso a Joe y lo analizaremos un poco mas
Carguémoslo en Olly de nuevo
Habíamos puesto al principio 3 BPs y solo utilizamos uno, el necesario para cazar el serial correcto, ahora veremos que hacen los otros dos.

Pulsamos el botón reg number y Olly para en el BP que pusimos en este botón



Bajamos con F8 y llegamos a este
call 46D4C5 y entremos en el con F7



Dentro del call seguimos con F8 hasta llegar a
42CA61 donde vemos una llamada a la API RegOpenKeyExA



Miramos la ventana del Stack y vemos un par de frases que si alguna vez accedimos al registro de Windows nos deberían ser familiares



HKEY_CURRENT_USER - Y debajo - Software\Crackme 6 Joe Cracker

Continuamos con F8 y observando la ventana registers y el Stack (esto sobraría decirlo a esta alturas, pero bueno)
Vemos la frase Registration number

  Ventana registers ->

Vemos el número de registro bueno al llegar a 0046D4EC

  Ventana registers ->

En el Stack vemos también como van apareciendo poco a poco

 <- Stack

Bueno a estas alturas si llevamos un tiempo con el PC y somos curiosos (si sigues este curso una de dos: o eres curioso - que es para los que va destinado este curso - o eres un guarreras que lo único que te interesa es aprender esto para tener programas comerciales registrados por el morro y enseñarle a tus amiguetes lo que sabes hacer sin importarte un pimiento lo que pasa dentro de esa caja gris que compraste un día que hace ruiditos y tiene lucecitas, yo una vez fui un guarreras, si, todos tenemos un pasado… )  como decía, si somos curiosos ya habremos investigado y trasteado con el PC lo suficiente como para darnos cuenta que este programa interactúa de alguna manera con el registro de Windows.

Abramos el registro
Para los nuevos que no saben (y para los guarreras también, que yo no discrimino a nadie) en el escritorio pulsamos Inicio – Ejecutar y escribís regedit y aceptáis

Aparece el registro de Windows buscamos lo que habíamos visto en Olly HKEY_CURRENT_USER\Software\Crackme 6 Joe Cracker



Pulsamos sobre el y vemos en la ventana de la derecha los valores de esa clave del registro



y observamos que las strings que vimos en Olly están aquí también, partiendo de lo cual deducimos que al introducir el numero de registro correcto el crackme escribió estos valores en el registro con el objeto de acudir a el cada vez que el crackme se ejecuta para tomar la información y ver si estamos registrados o no


Cuidadin con lo que haremos a continuación
Tocar el registro de Windows puede ser perjudicial para la salud del PC si no sabemos lo que estamos haciendo

Primero guardaremos una copia de la información del crackme,
lo haremos colocándonos sobre la carpeta y con botón derecho – Exportar
Le damos un nombre y lo guardamos yo le di el nombre crackme6joe.reg



Lo que vamos a hacer ahora es lo que puede trastocar el PC si no tenemos cuidado o no sabemos lo que hacemos: vamos a eliminar esa clave y todos sus valores
Si seguís estos pasos que yo os doy no tendréis problemas, pero aseguraros bien de que lo hacéis bien antes de eliminar nada

Nos ponemos encima de la carpeta que nos interesa eliminar - de la cual hicimos antes una copia exportándola – picamos y vemos que este sombreada – aseguraros bien que solo se sombrea lo que queremos eliminar -

Con click derecho – Eliminar o pulsamos la tecla Supr o Del y aceptamos.



Eliminada la clave cerramos el registro y ejecutamos el crackme, si pulsamos reg number nos llama otra vez vagos ya que borramos la información del registro y al buscarla el crackme al ejecutarse no la encontró y volvió al estado de no registrado.



También observamos que si intentamos registrarnos con un serial cualquiera al pulsar el botón registrar no aparece la ventana pidiéndonos que reiniciemos el crackme, por tanto:

Si introducimos numero correcto – salta ventana de reinicio – escribe los valores en el registro
Si introducimos numero incorrecto – no salta ventana de reinicio – no escribe los valores en el registro

Prosigamos con el análisis

Abramos el archivo que exportamos del registro con la información del crackme en mi caso lo llame crackme6joe.reg, lo podéis ver en la imagen superior
Lo abrimos con botón derecho editar



Comparadlo con la información del registro



Ahora lo cerramos, hacemos click izquierdo sobre el archivo crackme6joe.reg y nos aparece esta ventana



Pulsamos Si para agregar esta información al registro
Ejecutamos el crackme y registrados otra vez



Vuelvo a repetir:

tened mucho cuidado al manipular claves del registro si no os veis muy seguros dejad este crackme para cuando estéis familiarizados con el registro y el sistema operativo

Ahora crearemos otro archivo de registro con los mismos valores pero dejaremos el campo cap vacío
Como podéis ver en la imagen se crean con el bloc de notas y al guardar se les da la extensión *.reg



Aquí podéis ver mis archivos: el que tiene los valores buenos (crackme6joe.reg) y el que he creado dejando el campo “Cap” vacío (crackme6joe2.reg)

Si ejecuto crackme6joe2.reg y añado al registro la información de este archivo que he creado al ejecutar el crackme veo que falta el Caption de la ventana, falta registered
Por lo demás el crackme sigue registrado, solo lo hice como ejemplo para que vierais el resultado de manipular un valor en el registro.




El tercer botón
El tercero de los BPs que pusimos fue para que Olly parara al pulsar el botón
Por tanto corremos el crackme con F9 y pulsamos ese botón
Olly para aquí y podemos ver que en esta parte del código se llama a ejecutar por medio de la orden ShellExecuteA al archivo regedit.exe


Si abrís la carpeta que esta en vuestro disco duro C llamada Windows entre los ejecutables podéis ver uno llamado regedit.exe
Cuando se pulsa este botón hace lo mismo que hicimos manualmente cuando fuimos a escritorio Inicio – Ejecutar y escribimos regedit y aceptamos

Joe lo incluyo por si alguno de nosotros novatos no teníamos idea de cómo acceder al registro.

Continuemos haciéndole los honores al crackme de Joe

Las APIs

Si miramos las Cracker notes podemos ver esto (entre otras muchas cosas)

RegOpenKeyA / RegOpenKeyW

La función RegOpenKey abre la clave especificada


RegCreateKeyExA / RegCreateKeyExW

La función RegCreateKeyEx crea la clave especificada


Abriremos el crackme registrado en el Olly y le quitaremos todos los BP que teníamos y pondremos BP en la llamada a la API RegOpenKeyA, la mas parecida es RegOpenKeyExA hacemos Control + N para hacer aparecer esta ventana y luego BP on every reference



Pulsamos F9 y después de parar y comprobar algunas claves del registro de Borland Delphi (en mi caso lo hizo) para aquí, si recordáis ya pasamos antes por esta zona cuando vimos que el crackme escribía en el registro



Seguimos con F8 y después de un rato llegamos aquí, vemos que ha terminado de comprobar y va a mostrar una ventana (ShowWindow) que es la principal del crackme como veis sombreado el caption es Crackme 6 registered



Comprobó nada mas arrancar el registro, vio que existía la clave y nos saca la ventana principal con el cartelito registered.

Si volvemos a borrar la clave del registro parara en RegOpenKeyExA y al seguir con F8 llegaremos al mismo sitio pero con una ligera variación: Crackme 6 Unregistered



Pongamos un BP en RegCreateKeyExA corramos el crackme y nos registramos con el numero bueno, al pulsar el botón parara en el BP pues al detectar el numero bueno procede a escribirlo en el registro



 <-Stack

Si miramos el Stack vemos la llamada a la creación de la clave del registro y luego el programa nos pedirá que reiniciemos volviendo a hacer lo mismo, pasara por RegOpenKeyExA y ahora al ver que estamos registrados evitara pasar por RegCreateKeyExA y nos mostrara de nuevo como registrados


Bien aunque ahora sobre el papel parezca un poco lioso no lo es tanto, es un ciclo que se repite y depende de si encuentra o no la clave en el registro de Windows te da el resultado registrado / no registrado.

Que pasaría si cambiamos el valor del salto donde compara el numero de registro nuestro con el bueno ¿?
Cambiémoslo como en la imagen e introduzcamos nuestro número malo



Hemos conseguido registrarnos con nuestro número con solo cambiar el valor del salto.



Fin del capitulo

Podéis tener algún problema con este crackme o haceros un lío al crear y eliminar las claves del registro, aseguraros de lo que hacéis, mirad bien si la parte del capitulo donde estáis leyendo requiere que el programa este registrado o no lo este y os evitareis liaros.
Lo mejor si te lías es dejarlo un rato y retomarlo cuando estemos frescos  desde el principio del capitulo, siempre es bueno hacer esto, pero en este caso con mas motivo pues podemos liarla al tocar el registro.

 

Capitulo siguiente

                                                                                                 


Febrero 2004

Pagina oficial del curso

 

Gracias a ...