Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 4 Agosto 2011, 08:53 am



Título: [Tutorial] skrackme1
Publicado por: .:UND3R:. en 4 Agosto 2011, 08:53 am
Tutorial skrackme1

Autor: skapunky
Nombre: Skrackme 1
Fecha: 18 de septiembre de 2007
Tamaño: 32,0 KB
Compilador y/o Packer: Visual Basic
Objetivos:
     1- Eliminar una nag
     2- Activar un botón
     3- Encontrar un ID/pass válidos

Descargar Crackme: http://karmany.fortunecity.com/img/skrackme1.zip (http://karmany.fortunecity.com/img/skrackme1.zip)
Descargar tutorial en formato .doc: http://www.mediafire.com/?32k452law9attcp (http://www.mediafire.com/?32k452law9attcp)

Citar
*Revisando el Thread crackmes y tutoriales, noté que este crackme no tenía tutorial, por eso me animé a realizarlo, aunque mientras lo realizaba me topé con que un usuario si lo había realizado, pero el enlace estaba muerto
el usuario es: Gevaudan
http://foro.elhacker.net/ingenieria_inversa/crackmes_tutoriales-t180720.0.html (http://foro.elhacker.net/ingenieria_inversa/crackmes_tutoriales-t180720.0.html)

1- Eliminando la nag

Para eliminar la nag utilizaremos el método denominado 4C este método consiste en que desde ollydb podamos alterar el orden de los form a iniciar de visual basic, para ello debemos ubicarnos en el OEP e ir a la dirección que apunta el PUSH en el dump:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/1.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/2.jpg)

Una vez ahí debemos sumarle 4C tal como lo indica la siguiente imagen:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/3.jpg)

luego de sumarle 4C obtendremos 4018E8, luego nos dirigimos a esa adress:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/4.jpg)

luego de esto nos dirigimos a la dirección que apunta el adress en el dump:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/5.jpg)

Una vez ahí si al adress le sumamos 24 obtendremos el primer form al igual que el siguiente de la forma numérica 0,1,2,3,4,5,6:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/6.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/7.jpg)

en donde 0 es el primer form que muestra el crackme, es decir el NAG y a continuación muestra el crackme, por lo que si alteramos el orden podría desaparecer el NAG, hagamos la prueba:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/8.jpg)

una vez modificado nos debería quedar así:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/9.jpg)

Guardamos los cambios y probamos a ver si nos ha funcionado:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/10.jpg)

Ya NO nos aparece el NAG



2- Activar el botón

Para activar el botón utilizaremos numega smartcheck ya que este se encargará de mostrarnos la dirección del botón junto con sus atributos, en este caso nos debería aparecer que el botón está desactivado, iniciamos numega smartcheck seleccionamos skrackme1 le damos a iniciar (botón play)

Notamos que dentro de Form1 se encuentra un botón llamado Command1 con atributo Enable=False si le hacemos click, en la derecha,podremos ver en donde se encuentra:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/12.jpg)

37C0 y si le sumamos la Base Address (400000) nos dará: 4037C0

Iniciamos con ollydbg scrackme1 modificado para saltar el NAG y nos dirigimos a
4037C0:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/13.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/14.jpg)

si nos dirigimos un poco más arriba por defecto debería tener un PUSH 0 al inicio que indicaría que el botón está deshabilitado, en caso contrario nos aparecería PUSH 1, en este caso nos debería aparecer PUSH 0, pero no nos aparece, por lo que lo más probable es que se haya hecho alguna modificación, pero siguiendo la estructura mencionada anteriormente debería haber aquí algún valor que es "pusheado" junto con un 0, probemos poniendo un BP en PUSH EDI:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/15.jpg)

Reiniciamos, si se ha borrado el BP se debe colocar de nuevo

Le damos RUN y al detenerse notamos que se detiene en nuestro BP, si miramos nuestro alrededor, especialmente el valor de EDI notaremos que es 0:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/16.jpg)

Que ocurrirá si lo incrementamos EDI (lo dejamos en 1) valor que equivalente a enable=true

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/17.jpg)

Luego le damos RUN y veamos que ocurre:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/18.jpg)

Nuestro Botón está activado

Bueno pero ahora hagamos esta modificación permanente, nos dirigimos nuevamente en el PUSH EDI y miramos nuestro alrededor:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/19.jpg)

Si miramos EBX notaremos que tiene el valor 1

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/20.jpg)

Por lo que deberemos Modificar PUSH EDI por PUSH EBX:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/21.jpg)

Con esto ya podremos guardar los cambios permanentes

3- Encontrar un ID/pass válidos

Abrimos nuestro skrackme alterado para no mostrar el NAG y con el boton habilitado, luego buscamos que API utiliza:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/22.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/23.jpg)

Esta API es muy interesante, esta se encarga de comparar dos variables

Por lo que pongámosle un BP:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/24.jpg)

de todas formas busquemos la referencias de texto:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/25.jpg)

Si buscamos un poco notaremos algunas referencias importantes:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/26.jpg)

Si nos dirigimos al address en donde se encuentra, má arriba encontraremos un salto llamativo:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/27.jpg)

Pongamos un BP en ese salto

Le damos RUN y nos carga skrackme1 sin ningún problema ahora introducimos datos falsos, en mi caso:

Citar
UND3R
989898

luego de introducir los datos falsos presionamos el botón con el candado y se nos detiene en la API __vbaStrCmp y si vemos en la pila:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/28.jpg)

Algo curioso mi serial falso y otro serial, podría ser el correcto, si damos RUN nuevamente se nos detendrá en el bp del salto

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/27.jpg)

Si invertimos el salto:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/29.jpg)

Nos quedará:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/30.jpg)

y si damos RUN nuevamente nos aparecerá lo siguiente:

(http://r00t-pssw.webcindario.com/images/Crack/Tutorial%20skrackme1/31.jpg)

Por lo que ya hemos obtenido el Serial correcto y además hemos localizado el salto que se debe invertir para que el serial introducido sea siempre el correcto


Título: Re: Tutorial skrackme1
Publicado por: Tinkipinki en 4 Agosto 2011, 11:37 am
Hola UND3R:
El link de descarga del crackme no funciona.
Saludos


Título: Re: Tutorial skrackme1
Publicado por: karmany en 4 Agosto 2011, 16:56 pm
Para .:UND3R:.
Excelentísimo tutorial con todo lujo de detalles. Mi enhorabuena primero por la resolución y segundo por el gran trabajo que has hecho explicándolo todo y subiendo las imágenes.

Si no me equivoco, aunque con tantos tutoriales no lo recuerdo, el tutorial de Gevaudan no lo pude copiar y aunque por correo electrónico se lo pedi a dicho usuario, me comentó que ya no lo tenía y por eso no lo pude volver a subir.

Este tutorial lo tengo guardado ya.

Tinkipinki : "El link de descarga del crackme no funciona."
-Cuando subi dichos crackmes a un alojamiento lo hice en el alojamiento gratuito de fortunecity. Este alojamiento tiene muchas limitaciones y una de ellas es que no te permite descargar archivos desde otra página Web que no sea la original (cosas de alojamiento gratuito y ganar dinero con publicidad, me imagino). Lo iba a poner en mi sitio Web pero de momento lo dejo ahí..

¿Qué quiero decir? Pues que para descargar el skrackme1 tienes que ir a
http://karmany.fortunecity.com/
y ahí descargarlo. Seguramente, como es normal en fortunecity se te abrirá otra ventana de anuncios y tendrás que pulsar en "Skip the ad".


Título: Re: Tutorial skrackme1
Publicado por: ]_HQH_[ en 4 Agosto 2011, 17:41 pm
Me gusta mucho el tutorial, para aprender en general y digno de ser distribuido por la comunidad. ¿Que licencia tiene para distribuirlo en otras webs o en hispabyte?


Título: Re: Tutorial skrackme1
Publicado por: .:UND3R:. en 4 Agosto 2011, 18:38 pm
Para .:UND3R:.
Excelentísimo tutorial con todo lujo de detalles. Mi enhorabuena primero por la resolución y segundo por el gran trabajo que has hecho explicándolo todo y subiendo las imágenes.

Si no me equivoco, aunque con tantos tutoriales no lo recuerdo, el tutorial de Gevaudan no lo pude copiar y aunque por correo electrónico se lo pedi a dicho usuario, me comentó que ya no lo tenía y por eso no lo pude volver a subir.

Este tutorial lo tengo guardado ya.

Tinkipinki : "El link de descarga del crackme no funciona."
-Cuando subi dichos crackmes a un alojamiento lo hice en el alojamiento gratuito de fortunecity. Este alojamiento tiene muchas limitaciones y una de ellas es que no te permite descargar archivos desde otra página Web que no sea la original (cosas de alojamiento gratuito y ganar dinero con publicidad, me imagino). Lo iba a poner en mi sitio Web pero de momento lo dejo ahí..

¿Qué quiero decir? Pues que para descargar el skrackme1 tienes que ir a
http://karmany.fortunecity.com/
y ahí descargarlo. Seguramente, como es normal en fortunecity se te abrirá otra ventana de anuncios y tendrás que pulsar en "Skip the ad".

Que bueno que te gustó y claro la idea principal de todo esto es para aquellas personas que se inician, me incluyo por eso considero que es de tan suma importancia que se explique detalladamente que se realiza en cada paso

Saludos

Me gusta mucho el tutorial, para aprender en general y digno de ser distribuido por la comunidad. ¿Que licencia tiene para distribuirlo en otras webs o en hispabyte?

Puedes distribuirlo sin ningún problema hacia cualquier sitio o presentarlo en cualquier lugar

Saludos


Título: Re: [Tutorial] skrackme1
Publicado por: MCKSys Argentina en 4 Agosto 2011, 19:56 pm
Muy bueno! Como que le estas tomando el gustito a los tutes... eh??  ;D

PD: No te olvides de hacer un PDF y subirlo a CLS!


Título: Re: [Tutorial] skrackme1
Publicado por: .:UND3R:. en 4 Agosto 2011, 20:08 pm
Muy bueno! Como que le estas tomando el gustito a los tutes... eh??  ;D

PD: No te olvides de hacer un PDF y subirlo a CLS!

Jejeje así es, lo del PDF me da flojera pero ya está publicado en CLS y subido en la página de ricardo narvaja

Saludos


Título: Re: [Tutorial] skrackme1
Publicado por: Иōҳ en 4 Agosto 2011, 21:23 pm
Jejeje así es, lo del PDF me da flojera pero ya está publicado en CLS y subido en la página de ricardo narvaja

Saludos

Muy bueno Under, es hora de que toques los concursos de CLS ánimo.

Nox.