6 oct. 2009

Otro Pequeño Tute Para Los Recien Iniciados :D

Bueno este pequeño escrito que a continuacion veran, lo realice hace ya un par de meses para la seccion de Ingenieria Inversa de el foro.elhacker.net, pues bien, y porque no expandir el conocimiento por poco que sea?, ademas tambien queria darle un poco de vida al blog despues de mucho tiempo sin publicar :P, asi que decidi ponerlo tambien aqui, recomendado para los que recien empiezan en el cracking:


_________



::::::::::::: Tute Crackme NaXoS 1.1 - AmeRiK@nO :::::::::::::


Link Crackme: Aqui

Primero lo cargamos en Peid y no dice nada :P y en RDG muestra UPX:


No presentará mucho problema, por lo que podemos hacerlo a mano, o usando el mismo UPX con la opcion -d y descomprimirlo.


Una vez descompreso vemos que se trata de un Borland C++, ejecutamos el crackme y miramos a que nos enfrentaremos:


Ahi vemos que pase lo que pase tendremos que activar primero ese boton para poder hacer algo, tambien porque el crackme en si no usa la rutina en los eventos de las 2 cajas de edicion ni usa apis llamativas, por lo que solamente el registro se realizará una vez presionado el boton, y tendremos varias alternativas para activarlo, usando editores, etc, pero para hacerlo mas elegante vamos a hacer uso de la api EnableWindow... cargamos primero el unpacked en olly xD y ahora ponemos el BP en dicha api:




Luego de esto ejecutamos el crackme y vemos que no para alguna vez, asi que para no tener que injertar ni nada por el estilo miremos todos los botones que trae el crackme para ver cuando hace uso de la api:




Nos muestra ese segundo Form y aun no ha parado en la api, asi que demos click en el boton Prem!OS y ahi si para el olly:




Ahora nos vamos a ver en la pila los parametros:


Ahi vemos en ESP+4 el handle del control a activar o desactivar segun indique el flag en ESP+8, por lo tanto vayamos a la ventana Windows de Olly y pillemos el handle del boton que necesitamos:




Ahi vemos que se trata del boton en cuestion de la clase TBitBtn de Borland, y alli vemos su handle tambien, copiamos este valor, y vamos a modificar los parametros en la pila antes de la llamada a EnableWindow. Seleccionamos el DWORD de ESP+4, damos click derecho/modificar y ponemos el Handle de nuestro boton, y en ESP+8 ponemos el valor de 1 que indica Enabled:






Una vez hecho todo esto, deberia quedar asi:


Bueno ahora quitemoss el BP en la api y presionamos F9, y cerramos los forms que abrimos y vemos que aunque no lo parezca por su color, el boton ya esta activo:


Ahora si vamos a hacer lo sigueinte, para seguirle el paso a nuestro serial, primero ingresamos los datos y antes de presionar Comprobar usaremos el plugin The Kluger y pondremos un BP en el Punto H.




Entonces ahora presionamos Comprobar y vemos que para allí:






En este instante es donde movera los dos datos a sus respectivos buffers, por lo tanto si apreciamos en ESI apunta al nombre y lo movera a la direccion que apunta EDI, por lo tanto presionemos F9 2 veces y cuando vaya a mover el serial, es decir cuando aparezca justo en ESI, presionamos F8 para que lo mueva y ahora vamos a la direccion de EDI y ponemos un HBP on Acces en ese sitio:




Presionemos F9, y ya estamos justo cuando el crackme va a manipular los datos:


Salimos de esta parte y continuamos el traceo hasta aqui, sin entrar en las calls, ya que hay muchas que son tipicas de Borland (un poco de experiencia ya :P) y no son necesarias para la rutina:


Compara que la longitud del nombre sea mayor a 1. Continuemos.... y vemos aqui que compara si es mayor o igual que 6, y como lo és, veamos donde nos manda:




A otra comparacion que indica lo contrario por lo cual no se cumplirá, y si seguimos llegamos a esta otra parte:


Esta rutina es una gran parte de la rutina generadora del serial por no decir toda :P y no es muy complicada que digamos, por eso puse los comentarios para mas detalles jeje.... ahora cuando salgamos vemos esta comparacion:


Ahi compara la longitud de la cadena generada antes 07h, ahi se ve en el Dump con la longitud de nuestro nombre 09h en mi caso, y si es mayor o igual saltará, y como en este caso continuamos por una serie de rutinas que son interesantes si queremos hacer el keygen pero como no vamos a hacer un tute de 3 paginas :) vamos directo al serial, solo puse alguna info para animaros a crear el keygen. pasemos estas rutinas y continuamos hasta llegar finalmente a la comparacion:




Esta esta pequeño bucle que ira comparando caracter por caracter, entonces antes de que salga miremos que hay en [EBP+EDX-E8]:


Ahi vemos nuestro serial correcto, asi que sin alargar mas el tute, quitamos todos los BPs, lo probamos y....:



Ahi ta la mona con su bikini!!!

Resumiendo...

Name: AmeRiK@nO
Pass: aj_i]\-A4F-dwssqfw

Salu2 a todos!!!

2 comentarios:

VENOM dijo...

gracias por colocar el tute!

zalv-2

AmeRiK@nO dijo...

De nada!! :)