Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: tazzmk en 18 Octubre 2007, 00:02 am



Título: crackme 1 y 2
Publicado por: tazzmk en 18 Octubre 2007, 00:02 am
Hola aca les traigo unos problemas a solucionar

solo eh podido encontrar la solucion al crackme 1 aun no eh podido con el crackme 2

disfrutenlo !!

Crackme 1

(http://s1.subirimagenes.com/imagenes/previo/thump_15375152007-10-17_185806.png)

Crackme 2

(http://s1.subirimagenes.com/imagenes/previo/thump_15375172007-10-17_185748.png)

Bajar Pack Crackme 1 y 2
http://rapidshare.com/files/63294313/crackme1y2.rar (http://rapidshare.com/files/63294313/crackme1y2.rar)


Título: Re: crackme 1 y 2
Publicado por: yardbird_miguel en 18 Octubre 2007, 00:57 am
1ero resuelto

Contraseña por privado

Editado: Mañana miro el segundo

Suerte


Título: Re: crackme 1 y 2
Publicado por: karmany en 27 Octubre 2007, 20:40 pm
Después de echarles un vistazo, voy a añadir (aunque no sean del autor de este post), estos dos crackmes ya que son muy interesantes para Newbies:
-El crackme 1 porque del (1-10) tiene de dificultad 0.
-El crackme 2 es muy interesante ya que trabaja con variables de tipo Double, y  aunque es muy sencillo, utiliza los registros de la pila (hay 8, ST0-ST1-...-ST7) y puede despistar. Incluso hay una instrucción que hace referencia a un Qword = 8 bytes.
Todo esto de las operaciones con punto flotante es muy interesante... y difícil. Este crackme nos puede ayudar a comprender un poco todo este tema.

Hay un doc muy interesante sobre este tema del punto flotante. El enlace está en el post-it de "Links Interesantes".


Título: Re: crackme 1 y 2
Publicado por: karmany en 15 Noviembre 2007, 20:53 pm
Sólo para los recién iniciados en el Arte de la Ingeniería Inversa...!!

A ver si alguien (abstenerse los foreros con experiencia) se atreve a hacer un pequeño tutorial de cómo resolver el crackme1. Con 2-3 lineas sobra  ;)

Pd. Si alguien sabe cómo resolverlo, pero no está seguro de hacer bien el tutorial o tiene dudas.... un mp.

Es muy sencillo, no podemos dejar éste sin solucionar...

Un saludo
karmany


Título: Re: crackme 1 y 2
Publicado por: Vingilot en 23 Diciembre 2007, 13:50 pm
Hola!

Apenas llevo unos pasos en esto del cracking, proponiais que un novato en el tema propusiera un tutorial, he intentado hacerlo pero me ha resultado imposible.

Averigüe cual es la clave para entrar ya que venía como unicode al abrirlo con el OllyDBG, estuve leyendo las lecciones, de ricardo narvaja y en su primer crakme cambio un salto condicional por uno sin condición y ese crackme lo resolvi, trate de hacer lo mismo con este pero no ha dado resultado nada de lo que intente, me centre en esta parte del código:

00401E7B     CMP EAX,EDI
00401E7D     JGE SHORT Crackme1.004017C8

Que salta a la parte donde pone el unicode.

Si pueden darme algún consejo seguire con ello, entiendo que es un crakme muy sencillo incluso para iniciados pero bueno poco a poco se empieza

Un saludo.


Título: Re: crackme 1 y 2
Publicado por: karmany en 23 Diciembre 2007, 22:45 pm
Hola Vingilot, bienvenido.

Muy bien por tu interés, es la forma de aprender. Cualquier duda que tengas te echaremos un cable.

Voy a echar un vistazo al crackme1 a ver dónde fallas... luego vuelvo..

Un saludo
karmany


Título: Re: crackme 1 y 2
Publicado por: karmany en 23 Diciembre 2007, 23:04 pm
Acabo de echarle un vistazo, te voy a explicar dónde fallas.

Mira efectivamente estás en la zona correcta. Sólo hay una subrutina que comienza en:
401E00 PUSH EBP
y termina en
401FC0 RETN

Ése salto en el que te has parado, cuando examines más programas compilados en Visual Basic, verás que es un salto característico y que normalmente siempre salta. No tiene nada que ver con el serial ni con nada de eso, pero eso ya lo verás cuando examines varios programas en Visual Basic.

Continúa después de ese salto, no lo modifiques y sigue el código y seguidamente verás una función típica de Visual Basic: __vbaStrCmp

Ya no te digo más... jeje

Bueno si sigues teniendo dudas, coméntalo
Un saludo
karmany


Título: Re: crackme 1 y 2
Publicado por: sempus en 24 Diciembre 2007, 01:28 am
00401E7B     CMP EAX,EDI
00401E7D     JGE SHORT Crackme1.004017C8
estas bien,yo comenze con esto pero lo deje por falta de tiempo, recien hoy me puse a verlo y el primero esta demasido facil

despues de poner tu BP en 00401E7B ya lo tienes cocinado
cuando olly se detenga presiona f7 y luego f8 hasta llegar a 00401E9A (Que es lo que dijo karmany "vbastrcmp) cuando estas alli ya lo hiciste todo
strcmp=instruccion para comparar cadenas

solo tienes que ver que hay en la parte inferior derecha (no me acuerdo como se llama)


no se si con esto violo regla alguna

(http://photos1.hi5.com/0017/624/461/zL5zCa624461-02.jpg)

si me equivoco por favor hacermelo saber


Título: Re: crackme 1 y 2
Publicado por: Vingilot en 24 Diciembre 2007, 11:03 am
Gracias por su ayuda tanto de karmany como de sempus, la verdad es que estaba obcecado con ese CMP y no vi __vbaStrCmp, tengo ligeros conocimientos en programación en C así que esto lo vi ya más claro.

Corri el programa varias veces para ver por donde iba el "chico malo" y por donde el "chico bueno", y el salto estaba en:

00401EDA   JE SHORT Crackme1.000401F1F

Cuando saltaba mostraba el mensaje de error, (al cual le tengo ya algo de manía).

Trate de poner alguna instrucción para que no saltase pusiese lo que pusiese el usuario pero de tan verde aún no conozco que comandos usar, así que trás pelearme con él un rato decidi jugar sucio, no quiero que saltes? pues te borro.


00401EDA   CMP EAX,EAX

Si lo sé me direis que es burdo y una chapuza que es una instrucción que no hace nada pero bueno funciona ^^.

Un saludo a todos y muchas gracias por el tiempo que emplean, si más adelante tengo mejores bases haré encantado el tutorial pero la verdad es que aún hago las cosas en plan prueba error y no quiero liar a la gente.

Una vez más gracias. Me gusta el mundillo este de la Ingeniería Inversa.


Título: Re: crackme 1 y 2
Publicado por: sempus en 24 Diciembre 2007, 14:58 pm

00401EDA   JE SHORT Crackme1.000401F1F

Cuando saltaba mostraba el mensaje de error, (al cual le tengo ya algo de manía).

Trate de poner alguna instrucción para que no saltase pusiese lo que pusiese el usuario pero de tan verde aún no conozco que comandos usar
00401EDA   JE SHORT Crackme1.000401F1F
efectivamente aca tienes que cambiar el JE por un JNZ y luego guarda los cambios y cuando el usuario digite algo (sea lo que sea) dara el mensaje correcto a menos claro que digite de suerte la clave que es correcta entonces dara error.

solo ve a esa direccion y presiona barra espaciadora, luego donde dice JE cambialo por JNZ y presiona el boton assemble, luego cierra la ventanita y da click derecho y "copy to ejecutable-selection" cierra la ventana que se abre luego y da "si" coloca el nombre que quieres y da guardar, eso es todo.



Título: Re: crackme 1 y 2
Publicado por: karmany en 24 Diciembre 2007, 15:45 pm
Ok perfecto, enhorabuena a los dos. Crackme1 solucionado.

Si quieres que no salte, puedes nopear el salto y eso lo puedes hacer muy sencillo seleccionando la instrucción del salto (JE SHORT Crackme1.000401F1F) y pulsando botón derecho --> Binary --> fill with NOP's, y así de este modo (igual vale con CMP EAX, EAX, pero yo prefiero poner NOP's) nunca saltará.

Muy bien, a por el crackme2 que es un poco más complejo.


Título: Re: crackme 1 y 2
Publicado por: Vingilot en 24 Diciembre 2007, 15:53 pm
Muchas Gracias sempus y karmany, he probado las 3 soluciones y todas funcionan, pero era esa de fill with NOP's era la que buscaba.

Pd: sempus gracias a la explicación de guardar, que parecía obvia pero con la que ya puedo guardar las soluciones ^^.

Un saludo a todos.


Título: Re: crackme 1 y 2
Publicado por: sempus en 24 Diciembre 2007, 22:36 pm
Muy bien, a por el crackme2 que es un poco más complejo.
Reto finalizado, ¡Felicidades!  ;D
Esta curioso, lastimosamente solo con cambiar je con jnz lo consegui,aca no vi ningun strcmp o vi mal??


Título: Re: crackme 1 y 2
Publicado por: Vingilot en 25 Diciembre 2007, 19:19 pm
^^ Al fin consegui averiguar que saltos tenia que dar y cuales no.

Como pedían un pequeño tutorial pondré abajo que pasos dí, seguramente mejorables y quizás algún error, lo pongo con la intención de que me señalen los errores y de ayudar a los muy newbies que como yo los hay ^^:
.
.
.
.
.
.
.
.
.
.
.
.
.
.Solución:

Comence leyendo las obras de Ricardo Narvaja y como tal pongo el camino del "Chico Malo", es decir cuando no acertamos con la clave:


Chico Malo:

Del código estos son los saltos que recorre:

00402286      3BC7          CMP EAX,EDI

00402288   . /7D 12         JGE SHORT Crackme2.0040229C

EAX y EDI son iguales. 

Jump if Equal or Greater, Toma el salto.




004022CD   .  A8 0D         TEST AL,0D

004022CF   . /0F85 28020000 JNZ Crackme2.004024FD   


Jump if Not Equal, no lo salta.




00402355   .  3BC7          CMP EAX,EDI

00402357   . /7D 12         JGE SHORT Crackme2.0040236B salta

Jump if Equal or Greater

son iguales toma el salto.





004023A7   .  66:3BF7       CMP SI,DI

004023C8   . /74 58         JE SHORT Crackme2.00402422   

Jump if Equal, salta.

Este Salto es la clave. Al desensamblar vemos que si salta pasa de la instrucción
"Reto finalizado", y llegas hasta el mensaje de Fallo.("Bien es dicho que...Try Again").



0040245D   .  FF15 F8404000 CALL DWORD PTR DS:[<&MSVBVM50.#595>]                    ;  MSVBVM50.rtcMsgBox

Llama al Mensaje de ERROR.



Con este cambio ya vale:

004023A7   .  66:3BF7       CMP SI,DI

004023C8   . /74 58         JE SHORT Crackme2.00402422   

Eliminamos el posible salto con Fill Nop's

Si quieres que no salte, puedes nopear el salto y eso lo puedes hacer muy sencillo seleccionando la instrucción del salto (JE SHORT Crackme1.000401F1F) y pulsando botón derecho --> Binary --> fill with NOP's

Así núnca saltará como me dijo karmany.


Gracias a karmany, sempus, y ShadowDark.


Título: Re: crackme 1 y 2
Publicado por: Shaddy en 27 Diciembre 2007, 02:23 am
¿yo?, ¿gracias?, jeje, no dije nada ^^.

Aun así agradecido :). Me alegro de que lo solucionaras.

FELICIDADES.

Salu2..


Título: Re: crackme 1 y 2
Publicado por: R6ID en 17 Marzo 2008, 18:23 pm
Solucion para el Crakme 1 y 2:

Solucion del Crackme 1:http://rapidshare.com/files/100261929/Soluci_n_al_Crackme_1_By_R6ID.doc.html (http://rapidshare.com/files/100261929/Soluci_n_al_Crackme_1_By_R6ID.doc.html)

Solucion del Crackme2: http://rapidshare.com/files/100271424/Soluci_n_al_Crackme_2_By_R6ID.doc.html (http://rapidshare.com/files/100271424/Soluci_n_al_Crackme_2_By_R6ID.doc.html)

No me preocupado nada de ver que esta haciendo el programa ya que no deseo crear un keygen simplemente voy a buscar una clave valida para poder registrame.
Saludos de R6ID


Título: Re: crackme 1 y 2
Publicado por: kurt28 en 22 Septiembre 2012, 17:41 pm
¿Alguien que pueda subir estos crackmes o donde encontrarlos?

Los enlaces no funcionan.

Gracias.


Título: Re: crackme 1 y 2
Publicado por: karmany en 23 Septiembre 2012, 09:49 am
¿Alguien que pueda subir estos crackmes o donde encontrarlos?

Los enlaces no funcionan.

Gracias.
Tal vez yo los tenga, luego lo miro en mis backups.


Título: Re: crackme 1 y 2
Publicado por: karmany en 23 Septiembre 2012, 18:40 pm
Bueno, pues sí que los guardé... No guardo todos, pero tengo unos cuantos.

Los puedes descargar desde aquí:
https://docs.google.com/open?id=0B6IQFCPJ5JHpcENDWGJaaHpRNlk (https://docs.google.com/open?id=0B6IQFCPJ5JHpcENDWGJaaHpRNlk)

Allí, pulsa: Archivo ⇒ Descargar.

Contraseña: karmany

Pide la librería de VB5, que Windows 7 no tiene por defecto.


Título: Re: crackme 1 y 2
Publicado por: kurt28 en 25 Septiembre 2012, 20:41 pm
Gracias karmany. Tengo que practicar con Visual Basic.