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]
-----------------------------------------------------------
TrashAmbishion
-----------------------------------------------------------
5 - mayhemious_Crack_me
-----------------------------------------------------------
Usuario: Hole_System
Serial: motakukukufuarichikurin
Tutorial: http://www.4shared.com/file/3jOCKDxG/Tuto_Mayhemio.html
-----------------------------------------------------------
-----------------------------------------------------------------
| Usuario | Reto | Logro |
-----------------------------------------------------------------
| nanodiLL0 | 4 | Resuelto |
----------------------------------------------------------------
|TrashAmbishion | 5 | Tutorial |
----------------------------------------------------------------
nanodiLL0
-----------------------------------------------------------
4 - SerialMes
-----------------------------------------------------------
Name : Hack the Hacker
S/N : (F!-4.5/(..T]
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.
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
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.
Eso no nos dice mucho, subamos un poco y miramos algo sospechoso :
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 :
si vemos en el stack retorna a una direccion de memoria, damos Follow in dissambler.
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.
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]
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
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
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
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
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
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
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
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.