Retos Julio 2013 De reversing

Iniciado por kaltorak, 2 Julio 2013, 10:23 AM

0 Miembros y 1 Visitante están viendo este tema.

kaltorak

Hola a todos

Nuevo mes nuevos retos, aquí os traigo los retos de ingeniería inversa de este mes.

1 - X-KGNME#3

2 - VBCrackme2 by main

3 - Simple Math Keygenme

4 - SerialMes

5 - mayhemious_Crack_me

6 - Crackme_by_mausy

Retos:
http://ultrashare.net/hosting/dl/5a58d57055

Reglas:
http://foro.elhacker.net/ingenieria_inversa/retos_mensuales_de_reversing-t371874.0.html


Lista de Ganadores
-----------------------------------------------------------------
|     Usuario        |      Reto    |                Logro             |
-----------------------------------------------------------------
|    nanodiLL0     |       4       |               Resuelto          |
----------------------------------------------------------------
|TrashAmbishion |       5      |               Tutorial             |
----------------------------------------------------------------

nanodiLL0

-----------------------------------------------------------
4 - SerialMes
-----------------------------------------------------------

Name : Hack the Hacker
S/N  : (F!-4.5/(..T]

Cita de: nanodiLL0 en 11 Julio 2013, 17:32 PM
Aquí va un mini-tutorial (No muy bien explicado) :

Los objetivos son :

Eliminar el nag.
Encontrar el Nombre de usuario.
Encontrar el Serial para activar el programa.


Eliminando el nag

Hay bastantes método para esto, pero elejí el que me facilito todo a mí.
Es un rtcMsgBox (Parecido al MessageBoxA), entonces ponemos un Bp en esa API.

Bp rtcMessageBox Iniciamos el programa.


Miramos el stack y vemos donde retorna,  damos clic derecho y follow in dissambler.

Código (asm) [Seleccionar]
LEA EAX,DWORD PTR SS:[EBP-58]

Caemos ahí, Ahora quitamos el Bp de la API rtcMsgBox y lo ponemos en ese "LEA".
Reiniciamos y damos Run.

Nos muestra el Message y para en el Breakpoint que agregamos.
Veamos los Registros Especialmente EAX
Esta en 1.

Bueno estoy algo me dice que por EAX se ejecutó el nag de la discordia.
Bueno tengo fiaca. Así que nopeamos a ver el call de rtcMsgBox

Código (asm) [Seleccionar]
CALL DWORD PTR DS:[<&MSVBVM60.#595>]     ;  MSVBVM60.rtcMsgBox

Guardamos los cambios Clic derecho -> Copy to executable->All modifications-> Save File.

Bam! Hemos vencido al nag.

Encontrando el nombre y el serial:

Bueno no quiero que gasten tiempo en buscar un decompilador para Visual basic, usaremos nada más ollydbg en este mini-tute.

Búsquemos en los strings references.
Bajamos un poco buscando nuestro mensaje querido "Bad boy".

A fatal error happened while trying to register!

Un poco arriba vemos algunos strings sospechosos y tambien el mensaje de felicitaciones "Good boy".

Damos doble clic en el de Chico bueno y miremos a ver que encontramos.
Código (asm) [Seleccionar]

    CMP SI,BX
      JE SHORT SerialMe.00402453 ; Salta si el Flag Z = 0


Eso no nos dice mucho, subamos un poco y miramos algo sospechoso :

Código (asm) [Seleccionar]
PUSH SerialMe.00401A00                   ;  UNICODE "(F!-4.5/(..T]"
CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm>;  MSVBVM60.__vbaStrCmp


Nota : Recordemos que la API __vbaStrCmp compara dos cadenas de texto


Ollydbg nos aclara el String que va enviar al stack, entonces hagamosnos una pregunta ¿Con qué compara ese string?

veamos a ver como está esta odisea...

Pongamos un Bp en esa APi, además, ingresemos los siguientes datos para ir iguales.

Name : Ricardo
S/N    : N          ; Al escribir en el tedit de el serial se detiene el Breakpoint de la API.

y Si nos fijamos en el Stack :

Código (asm) [Seleccionar]

0012F378   00402844  RETURN to nag.00402844 from MSVBVM60.__vbaStrCmp
0012F37C   004019DC  UNICODE "Hack the Hacker"
0012F380   001846EC  UNICODE "Ricardo"


si vemos en el stack retorna a una direccion de memoria, damos Follow in dissambler.
Código (asm) [Seleccionar]


00402838        PUSH EAX
00402839    PUSH nag.004019DC                        ;  UNICODE "Hack the Hacker"
0040283E     CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm>;  MSVBVM60.__vbaStrCmp
00402844   .  MOV EDI,EAX




Si nos fijamos en EAX tiene el nombre que ingresamos "Ricardo" y abajo mueve al stack el nombre sospechoso.

Entonces no queda más que decir que compara nuestor nombre con ese.
condicion_{
NAME FALSE == NAME TRUE
return 0
}
Reiniciemis el Ollydbg y ponemos ese nombre con el Bp en __vbaStrCmp.

Se detiene nuevamente y si nos fijamos en el stack estan iguales.

Entonces ya encontramos el nombre, solo falta encontrar el serial.

Ok no reinicien el ollydbg y demos F9 nuevamente.


Código (asm) [Seleccionar]
0012F378   004028AE  RETURN to nag.004028AE from MSVBVM60.__vbaStrCmp
0012F37C   00401A00  UNICODE "(F!-4.5/(..T]"


Vemos ese string y Bam...

Tiene el mismo procedimiento de comparación que el nombre, entonces no queda nada mas que decir : Ese es el serial verdadero.

condicion{
SN == SN TRUE
return 0
}


Entonces tenemos el resultado :


Name : Hack the Hacker
S/N  : (F!-4.5/(..T]




-----------------------------------------------------------

TrashAmbishion

-----------------------------------------------------------
5 - mayhemious_Crack_me
-----------------------------------------------------------

Usuario: Hole_System
Serial: motakukukufuarichikurin

Tutorial: http://www.4shared.com/file/3jOCKDxG/Tuto_Mayhemio.html

-----------------------------------------------------------

Un saludo
Kaltorak.



kaltorak

Hola a todos.

Bueno resucito el post del olvido jajaja y actualizo la lista de los participantes.

Animo chicos participar en el reto que es veranito y algunos estáis de vacaciones.

Un saludo
Kaltorak.



kaltorak

Bueno pues doy por finalizado el reto de este mes, la verdad se ha notado que estáis de vacaciones por la poca afluencia que ha tenido el reto   ;D

Un saludo
Kaltorak.




apuromafo CLS


TrashAmbishion

El objetivo es explicar como lo hicistes como decifrastes el problema... o que?


apuromafo CLS

siempre la idea es resolver, pero veo que envian como "resuelto" solo por enviar un serial de cada uno... yo si tuviera tiempo y lograra algo siempre uno intenta un tutorial,  o algo más...por si alguien realmente lo miró y quisiera aprender de como se hizo...

encuentro que es re- dificil intentar hacer retos que tampoco se tienen en contraste sus fuentes originales...pero ni modo, son retos simplemente...


EscritoEstáSatanás

@Apuromafo :

Yo me hice un tutorial de como resolví y que logré , pero veo que no lo publicarón, será por falta de tiempo seguro...

Ahí explique lo que hice.

EscritoEstáSatanás

@TrashAmbishion

Aquí te dejo este reto que es parecido al "SerialME" por el botón a habilitar.

Pero este trae otras sopresas.

Espero que tengas tiempo en leerlo y los demás que quieran ver como logré resolverlo.

Viene adjunto el VB decompiler 9.2 para que no lo busquen.

Saludos, Jeudy.
Descargar:
http://www.2shared.com/file/llw5WYBR/Mensuales_el_hackerNET.html

crksergio

Quién está a cargo de ver qué retos califican para cada mes?

Flamer

#9
hola devas yo estoy acargo y kaltorak me ayuda con la lista y yo elijo los crackmes.

Yo elijo los crackmes al asar pero solo nivel 1 y uno que otro del 2 para que se inicien y practique los mas novatos como yo.

Te digo por que del 1 por que si pongo de mas nivel nadie los ase asi que pongo los fasiles aver si se animan.

Hola nanodiLL0 tu eres Jeudy o te confundo bueno.

Nose por que nose publico tu solicion me pregunto si sela enviastes a kaltorak antes que terminara el mes bueno kaltorak me dijo que habia abido 1 concursante nomas

y si apuromafo es estresante atender un reto por eso a veces no los hago y no gano nada pero los hago cuando tengo tiempo y para pasar el rato.

Saludos flamer y gracias a kaltorak que con el me pego un alibiane ya se divide el trabajo