PROGRAMA

      

PROTECCION

     

HERRAMIENTAS

KARPOFF CRAKCME 1

DESCARGA

 

Sin protecci�n

 

Olly Debugger

Peid

DeDe

 

 

 

 

 

     NIVEL: Cavernicola

 

 



Veremos el uso de nuevos programas con el fin de ir conociendo distintas herramientas y sus posibles usos
Lo primero ser� sentar unas bases que utilizaremos con todos los crackmes o programas que analicemos de aqu� en adelante.

0 � Hacer una copia del ejecutable con el que vamos a trabajar.
1 � Analizar el ejecutable con un detector de protecciones para ver si esta protegido/comprimido.
2 � Fijarnos en que lenguaje esta escrito el programa.
3 � Si estuviera protegido desprotegerlo con el descompresor adecuado para poder analizar el c�digo.
4 � Ejecutar el programa una vez desprotegido.
5 � Acostumbrarnos a introducir el mismo serial de prueba en todos los programas que nos pidan serial para registrarnos.



Comenzamos con el crackme de hoy.

0 � Hacemos copia del crackme.

No creo que tenga que explicar esto, verdad �?

1 � Analizamos con un detector de protecciones.

Utilizaremos una nueva herramienta Peid (PE identifier).

Peid

Abrimos el Peid y en la ventana del programa pulsamos el bot�n con los tres puntos (�) para buscar y cargar nuestro crackme como har�amos con cualquier otro programa.



Tenemos el crackme cargado en el Peid y nos fijamos en la parte inferior justo encima de la l�nea de botones y vemos que nos dice
Borland Delphi 4.0 � 5.0
Eso significa que esta escrito en Delphi y que no tiene ninguna protecci�n.


Analizando el crackme con Peid Vemos que esta escrito en Delphi

Como sabemos si tiene o no protecci�n un programa �?
Mirad los siguientes ejemplos


Programa protegido con ASPack


Programa protegido con ASProtect


Programa protegido con UPX

Se ve el nombre de la protecci�n y el del creador de la misma, nada que ver con los nombres de los lenguajes de programaci�n (Delphi, C, C++, Visual Basic, Visual C, etc).

Antes de cerrar el Peid pulsamos el bot�n Options y lo dejamos como en la imagen siguiente y pulsamos save para guardar los cambios.


Peid ventana de opciones

Lo que suelen hacer estos programas es comprimir o empacar el programa empleando rutinas de protecci�n.
Realmente cuando se ejecuta el programa lo primero que se ejecuta es la rutina de descompresi�n pero es m�s sencillo de entender si lo imaginamos como dije en la l�nea anterior.

No tiene que ver nada con la compresi�n Zip o Rar que hacen Winzip o Winrar.
Estas protecciones se ver�n en cap�tulos posteriores, quedaros de momento con el manejo del Peid y la costumbre de analizar los crackmes antes de abrirlos con el Olly.

2 � Nos quedamos con el lenguaje en que esta escrito el programa: Delphi (en este caso).
3 � No esta protegido pues seguimos con el siguiente paso.
4 � Ejecutamos el programa.

Vemos que debemos introducir un serial y pulsar Registrar para registrarnos.
Pero escribir nuestro serial falso y pulsar Registrar no pasa nada, no sale ninguna ventana con aviso de registrado o no registrado.


Este programa esta defectuoso, me han enga�ado�

Por que pasa esto �?
Pues amigos porque no todas las protecciones te dan pistas tan claras para encontrar el serial correcto como los crackmes facilones de los cap�tulos anteriores.

Abr�moslo con Olly para investigar que esta pasando.
Buscaremos la �nica pista que tenemos: la cadena Registrar.
Buscamos las Strings en el Olly, pero esta vez como profesionales: nos colocamos encima de la primera cadena y con el bot�n derecho del rat�n Search for text


Con click derecho � Search text

Aparece otra ventana desmarcamos Case sensitive (esto es para que busque indistintamente escribamos en may�sculas o min�sculas) y escribimos la palabra (cadena) a buscar.
Pulsamos OK.
Llegamos a un sitio que puede interesarnos vemos en dos l�neas la palabra Registrar.



Doble click sobre el primero Olly nos lleva a
004428C6 pero no vemos ning�n CALL ni CMP ni salto ni nada de lo que nos hab�a servido para crackmes anteriores.


Aqu� no hay pistas

Reflexionemos:
No vemos nada conocido, ni cadena diciendo registrado o crackme resuelto o algo por el estilo.
No podemos rendirnos al principio del curso, usemos la intuici�n.
Intentaremos poner un Breakpoint en Registrar1 a ver que pasa, pues se supone que el programa al llegar aqu� debe parar.

Al pulsar F2 para poner el Breakpoint aparece este aviso que nos asusta.


Lagarto �! Lagarto!!

Traducci�n ratonil del mensaje de advertencia = como pongas el Breakpoint aqu� la puedes cagar.

Lo mismo nos pasa con la otra String


Otra vez la misma advertencia

Como aun nos asusta un poco este tema del crackeo no ponemos Breakpoint en ninguna de estas dos direcciones (aparte de que no conseguiremos nada).

Reflexi�n 2:

Que c#�# hacemos ahora �?
Recordamos una de las normas en las que hizo hincapi� el rat�n: 2 � Fijarnos en que lenguaje esta escrito el programa.
Miramos la lista de herramientas y vemos un programa nuevo: DeDe Delphi decompiler.
Nuestro crackme esta escrito en Delphi.
Conclusi�n: parece que deber�amos abrirlo con un programa especial para Delphi.


DeDe

Abrimos DeDe.
Cargamos el crackme en DeDe pulsando en el bot�n que tiene dibujada la carpeta



Una vez cargado pulsamos el bot�n Process y nos aparece la ventana del crackme y otra ventanita que nos dice que presionemos aceptar cuando el objetivo este cargado.
Como sabemos que el crackme esta cargado �? Pues cuando nos aparece la primera ventana del crackme (como ahora) esperamos un par de segundos y pulsamos Aceptar.


Cargando el programa en DeDe

Empieza el DeDe a trabajar con nuestro crackme y cuando termina aparece este aviso


DeDe ha terminado de cargar el programa

Pulsamos OK y en las dos siguientes ventanas que aparecen pulsamos NO.


Pulsamos no


Pulsamos no otra vez

Una vez que cerramos las dos ventanas vemos la pantalla principal del DeDe con el crackme destripado.
Pulsamos en Procedures y vemos esto


Ventana Procedures

Registrar1Click es una de las Strings que encontramos en el Olly, nos colocamos encima y click derecho - Show additional data



Y vemos una ventana con informaci�n interesante


En esta imagen vemos informaci�n adicional de Registrar1Click

Caption = Registrar Caption es el nombre que vemos de alg�n componente del programa (en este caso del crackme) esto nos indica que el Caption de este componente es Registrar.
En nuestro crackme el componente que tiene el Caption Registrar es el bot�n donde debemos pulsar para registrarnos.
Por tanto hemos encontrado el bot�n Registrar, el que pulsamos para hacer aparecer la casilla donde introducir nuestro numero de serie.
Pero este no es el bot�n que nos interesa, tiene que haber otro cuyo Caption sea Registrar, tenemos que buscarlo en el DeDe.
Fijaros en que no es igual el nombre del componente que el Caption del componente.

Fokus parece un nombre sospechoso le diremos que nos muestre datos adicionales


Te pille �!

Efectivamente el caption de focusClick es Registrar

Nombre del componente = Fokus (TButton tipo bot�n)

Caption del componente Fokus = Registrar

Event = OnClick Algo (un evento) ocurre cuando se �clickea� este bot�n (el bot�n Fokus cuyo Caption es Registrar)

Vemos al lado de FokusClick en el apartado RVA una direcci�n (
00442AEC) la apuntamos.
Esa direcci�n es donde se produce el evento OnClick, para entendernos donde se �clickea� el bot�n Register.
Si vamos a esa direcci�n en el Olly y ponemos un Breakpoint el programa parara cuando hagamos click sobre el bot�n Registrar.
Para aclarar un poco las cosas el bot�n Registrar1Click (tipo men� item) corresponde a la palabra Registrar del men� superior del crackme.
El bot�n focusClick (tipo bot�n) corresponde a la palabra Registrar que aparece debajo de la casilla donde debemos introducir el serial y su direcci�n es 00442AEC.

Cerramos DeDe, abrimos Olly y cargamos el ejecutable
Lo siguiente ser� ir a la direcci�n
00442AEC con Control + G con el fin de colocar un Breakpoint (BP) en esa direcci�n.
Con esto conseguiremos que Olly pare cuando pulsemos el bot�n registrar.
Arrancamos el programa con F9 introducimos nuestro numero y pulsamos registrar, el Olly para en la direcci�n
00442AEC (color rojo), mas abajo una zona con instrucciones conocidas (sombreado)



Olly paro cuando pulsamos el bot�n Registrar, antes de pulsarlo hab�amos introducido nuestro numero (yo sigo con mi 15151515), por tanto nuestro numero debe de andar por alg�n sito para que el programa lo compare.
Vemos unas l�neas m�s debajo de donde paro Olly unas instrucciones conocidas Call Cmp Je.
Bajemos con F8 hasta la direcci�n
00442B2F y una vez encima de ella pulsemos F7 para entrar a examinar el Call (aunque vemos ya algo que nos gusta en la ventana registers del Olly).


Je je

Dentro del Call confirmamos la sospecha
Dentro del Call nos movemos con F8 hasta ver esto



Probamos con el serial 3483A003RATON y�



Lo de siempre: intentadlo sin mirar tutorial

Capitulo siguiente

                                                                                                 


Febrero 2004

Pagina oficial del curso

 

Gracias a ...