|
Lo examinamos con Peid y nos dice que esta hecho en Delphi y sin proteccion.
Nos aparece la primera ventana del crackme y disfrutamos de ella leyendo toda
la parrafada
Más que nada para que os deis cuenta de que pasado un tiempo el programa se
cierra
Abrámoslo con DeDe
En el form principal vemos algo que llama la atención: el Timer
Seguro que tiene algo que ver con el cierre de la ventana, apuntemos su
dirección

Miremos el crackme en Olly
Buscamos la cadena timer1timer (Control + B)

Caemos en la dirección 0046AE92 que es donde esta la cadena y para seguirla subimos a
la dirección 0046AE8D
Desde aqui pulsamos la tecla Enter o click derecho Follow

y llegamos al call que genera el timer, el reloj que hace que se cierre el
programa pasado un cierto tiempo

Que haremos para evitar el funcionamiento del reloj ¿?
Usaremos la instrucción NOP (no operation), si dejamos el call inoperativo a
lo mejor el reloj ya no funciona
Fijaros que esta marcada la opción fill with nops y así Olly se ocupa del cambiar
lo que haga falta

Sombreamos todo lo que cambiamos y guardamos como siempre

Probamos el crackme un par de minutos y vemos que acertamos
Vamos a por el número de registro
Mirando el crackme con DeDe
Tened en cuenta que existen dos botones con el nombre registrar aparte de la
opción del menú
Este es el que aparece al abrir el crackme

Y este que es el que nos interesa

Este no nos interesa pues es el del formulario principal del programa lo
deducimos pues esta en el form principal

Este es el que buscamos (imagen inferior), lo oculta Joe bajo el nombre Dale
para despistarnos y esta en el form register del programa y se llama Dale
A estas alturas supongo que sabréis diferenciar entre el nombre y el caption

Olly de nuevo y a buscar el nombre del botón

Encontramos Dale click
Hacemos como con timer: 2 líneas más arriba y enter para seguirlo

Aparecemos aquí, que es donde se registra cuando pulsamos sobre el botón Dale
(con el caption register)
Hemos buscado el evento OnClick del boton dale
Ponemos un BP con F2

Pulsamos F9, nos vamos a la ventana de registro e introducimos nombre y
serial y Olly para en el BP

Con F8 vamos examinando poco a poco bajando línea a línea y vamos observando
nuestro nombre aparecer de vez en cuando pero lo que nos interesa es esta
zona, en 0046B5A2 vemos que hay algo parecido ha un archivo *.ini
Vamos a cambiar el sentido de los saltos a ver que sucede

Probé los 2 saltos y al cambiar este 0046B5A0 y
registrarme con nombre y serial falso y reiniciar el programa como me pide el
crackme

Veo que cambió el caption del botón y puedo por fin ver la puerta abierta
(aunque no es lo único que esta abierto)
Desde ahora en adelante ya no tendré que registrar más el programa cada vez
que quiera ver la sorpresa
Esto ocurre por lo siguiente
Si recordáis habíamos visto en un tramo del código algo que parecía un
archivo *.ini, pues bien en ese tramo del código se da una orden para
escribir algo en un archivo llamado cm3jc.ini
Que nos guarda en el disco duro (C en mi caso)

Si lo abrimos con el bloc

El crackme al ejecutarse toma referencia de este archivo para saber si
estamos registrados o no, al alterar el salto 0046B5A0 obligamos
al crackme a escribir el archivo *.ini que nos da por registrados
Si lo borramos del disco duro el crackme volverá a decirnos que no estamos
registrados
Esto que vemos en este capitulo es parecido a lo que vimos en los capitulos 4
y 5
Por hoy nada mas ya dije que este era un capitulo de descanso después del
anterior
Si alguien se anima a encontrar el número de serie valido para su nombre y
hacer un tuto de cómo se hizo podría añadirse como complemento a este
capitulo.
|