Crack Me 0.2 by Red Mx
Autor: Red Mx
Nombre: Crack Me 0.2
Fecha: 26 de mayo de 2009
Tamaño: 8,44 KB
Compilador y/o Packer: MEW 1.2 / Visual Basic (código nativo)
Objetivos: Conseguir la clave correcta.
Dificultad: 1-2 (1-10).
Realizamos un análisis con RDG Packer Detector:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/1.jpg)
Notamos que está comprimido con MEW 1.2 intentemos descomprimirlo abramos el crackme con OllyDBG, Nos avisa que está comprimido:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/2.jpg)
Intentemos buscar el OEP con el método de memory breakpoint on execution, esto se puede hacer a través de de un pluguin o ollydbg parcheado 5:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/3.jpg)
Presionamos M y colocamos un Memory breakpoint on access en la sección CODE
*En realidad es un MBPX por el pluguin:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/4.jpg)
Le damos RUN, esperamos un poco y se detiene en 00401210:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/5.jpg)
removamos el análisis del código y nos quedará:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/6.jpg)
Dumpeamos con ollydump:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/7.jpg)
Vamos a reparar la IAT, Nos vamos search->all intermodular call's y buscamos una que apunte a la IAT, en este caso rtcMsgBox:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/8.jpg)
Le damos doble click y nos aparecerá lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/9.jpg)
ahora Follow in dump->Memory Address y buscamos el Inicio y el final en la IAT en este caso:
Inicio:00401000
Final:004010C0
Largo:C0
colocamos los datos en ImportREC:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/10.jpg)
No hay ninguna IAT redireccionada :
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/11.jpg)
presionamos fix dump, seleccionamos el archivo dumpeado previamente por Ollydump, intentemos ver si se ha desempaquetado correctamente:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/12.jpg)
Funciona de maravilla, ahora intentemos colocar un serial:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/13.jpg)
Antes de presionar OK nos dirigimos a la sección code y colocamos un Memory Break point on execution (Con el pluguins), ahora le damos OK y se detendrá a continuación:
004025C0 . 816C24 04 3B0>SUB DWORD PTR SS:[ESP+4],3B
004025C8 . E9 A3050000 JMP dmp_.00402B70
Si seguimos traceando llegaremos hasta el siguiente OP code:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/14.jpg)
en el cual deberemos cambiar el FLAG S para que salte, debido a que notoriamente se puede visualizar una string que no es conveniente pushear
Si seguimos traceando una vez modificado el flag s llegaremos a un call encargado de devolver la fecha:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/15.jpg)
en mi caso 01/09/2011, luego de esto elimina los /:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/16.jpg)
si seguimos traceando pasando por la concatenación de dos series de string muy llamativas y un conjunto de otras operaciones llegaremos a la siguiente call:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/17.jpg)
si entramos con F7 a la call llegaremos a la siguiente call encargado de revertir la string:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/18.jpg)
Luego de seguir traceando llegaremos a una comparación a través de __vbaVarTstEq:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/19.jpg)
Entremos a la call con F7 llegando hasta el push 0, una vez detenidos ahí hacemos click derecho en EAX y presionamos follow in stack y veremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/20.jpg)
esto es comparado con edx (follow in stack) en mi caso UND3R es decir compara:
5642345645648784564156116456456110290104164214614321777407216721791241671010
con
UND3R
__vbaVarTstEq devuelve en EAX un número distinto de 0 si las dos string comparadas son iguales, notaremos que el resultado se dirige a ESI y luego se realiza un TEST SI,SI luego la comparación final JE SHORT en la cual si __vbaVarTstEq devuelve 0 en EAX JE saltará
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/21.jpg)
Probemos con la string comparada:
(http://r00t-pssw.webcindario.com/images/Crack/CrackMe%20by%20Red%20Mx/22.jpg)
pero, ¿para qué el crackme obtuvo la fecha?
Recordamos que la fecha en mi caso era: 01/09/2011, luego se eliminaron los /
01092011 luego se concatenó con las string llamativas y luego se revirtió la string:
5642345645648784564156116456456110290104164214614321777407216721791241671010
por lo cual lo que está con rojo debería ser la variable del serial del crackme
Hola .:UND3R:.
Comentarte que he visto el post y juro que no he mirado nada para asi poder probar el crackme y6 cuando me vaya quedando atascado irlo leyendo poco a poco para intentar comprender todo lo que explicas.
Felicitaciones por el tutorial.. ;-)
Saludos
Psdta:
Para a quien le interese, al no tener el crackme lo he buscado y lo he encontrado aqui:
http://foro.elhacker.net/ingenieria_inversa/crack_me_02_by_red_mx-t256104.0.html (http://foro.elhacker.net/ingenieria_inversa/crack_me_02_by_red_mx-t256104.0.html)
Cita de: Tinkipinki en 1 Septiembre 2011, 11:19 AM
Hola .:UND3R:.
Comentarte que he visto el post y juro que no he mirado nada para asi poder probar el crackme y6 cuando me vaya quedando atascado irlo leyendo poco a poco para intentar comprender todo lo que explicas.
Felicitaciones por el tutorial.. ;-)
Saludos
Psdta:
Para a quien le interese, al no tener el crackme lo he buscado y lo he encontrado aqui:
http://foro.elhacker.net/ingenieria_inversa/crack_me_02_by_red_mx-t256104.0.html (http://foro.elhacker.net/ingenieria_inversa/crack_me_02_by_red_mx-t256104.0.html)
Muchas gracias, que bueno que te haya gustado
Los crackmes están todos disponibles para descargar desde la web de karmany:
CitarSi el enlace a cualquier crackme falla, pueden utilizar la siguiente página para descargarlos:
http://karmany.fortunecity.com/ (http://karmany.fortunecity.com/)
Saludos y suerte con el crackme