DEBUGGER FECHA 2010 VICTIMA Varias aplicaciones .net (crackmes) URL DESCARGA PROTECCION Diferentes mtodos de proteccin. OBJETIVO Encontrar zona del cdigo real en diferentes aplicaciones .net sin usar herramientas adecuadas para .nets usando !nicamente un de"ugger #a $ue estos usan ma$uina %irtual se encontrara la zona del cdigo real. DIFICULTAD &o%ato hasta '%anzado (seg!n los ni%eles de crackmes.de pero mostrare con esta teor(a $ue $uiz)s no lo sean tan complicados) CRACKER '*E+'&D,- .-,,E/ (.-,,E/0,'01) http233444.face"ook.com3#o.torrescrack
444.torrescrack."logspot.com INTRODUCCION En este escrito no mostrare como llegue a solucionar las aplicaciones $ue pondr mas adelante (para no hacerlo mu# largo) solo mostrare como llegar ala seccin donde e5ecutan el cdigo los .net solo con oll# de"ugger #a $ue estos usan ma$uina %irtual # tam"in mostrare pe$ue6os e5emplos de como llegar a la zona 7caliente8 en algunos casos. 9uise escri"ir esta teor(a pues anteriormente estu%e luchando con un soft4are compilado en .net # tu%e $ue arregl)rmelas #o solo # con mi oll# de"ugger a falta de conocimientos en ese lengua5e # logre encontrar un mtodo $ue se puede aplicar en soft4are share4are demo etc para cazar seriales o contrase6as %alidas solo con oll#. EXPLORANDO LOS OBJETIVOS: Empezaremos con unos crackmes sacados de 444.crackmes.de # comenzaremos desde los de ni%el 1 hasta los mas dif(ciles esto es para $ue %ean $ue sin importar el ni%el de dificultad siempre tienen sus %ulnera"ilidades 5e5e -1 empecemos con el primero su nom"re es 1e#genme1:zero1;< dificultad2 ni%el 1 for ne4"ies *o checamos con el ,D= packer # %emos esto Vemos no ha# packer ahora seguimos lo a"rimos con el oll# de"ugger # #a $ue corra con el oll# lo %emos de esta forma >a $ue este corriendo escri"imos el usuario # contrase6a $ue deseen despus $ue se de cuenta la cuenta $ue la contrase6a es incorrecta nos manda un message"o< %eamos ?gra%(simo error? (para mi sacar un message"o< es como darte la entrada a crackearlo 5e5e5) 'hora #a sa"emos $ue poniendo un "p en @essageAo<E<B parara ponemos el "p # presionamos de nue%o para $ue nos mande el message"o< # pare #a $ue pare %emos algo como esto
*isto estaremos parados en la entrada de @essageAo<E<B 'hora llegamos al ret con ctrl.Cf D # lo pasamos con fE #a $ue pasamos el ret %eremos un pop e"p -k #a $ue estemos ha# ahora llegamos al ret # lo pasamos # ahora caeremos a$u( 'hora esta es una Fparte importante $ue toda%(a sigo estudiando #a $ue esa parte siempre la traen los .net # supongo es parte de todos los .net en esa parte de cdigo siempre llegaremos en todos nuestras aplicaciones con este mtodo por eso $uiero se lo gra"en para $ue no se pierdan cuando despus intenten aplicar este mtodo -1 seguimos entonces #a $ue caigamos ha# llegamos al ret con ctrl C f D # pasamos el ret # caemos en esta parte Vean # acurdense en $ue modulo estamos #a $ue de a$u( pasaremos por %arios rets # espero no se pierdan -1 ahora llegamos ahora pasaremos %arios ret llegando por e5emplo con ctrl. C fD # pas)ndolos con f E as( hasta $ue lleguemos a esta seccin # a este modulo %eamos *isto llegamos ala zona donde el programa hace cochinadas para registrarse 5e 5e5e %eamos ahora el modulo encerrado en el rect)ngulo es main thread # la direccin de memoria estar por 00D00000 todos los programas $ue he crackeado empiezan de esa forma sa"r)n $ue para llegar a esta seccin ha# mil formas pero esta es la forma de caer en esa direccin llegando casi ala zona caliente ahora este tute no se trata de cmo resol%er los crackmes pero les do# una pista si su"en mas %eran $ue es lo $ue hace el programa para mandarte a este mensa5e el del chico "ueno despus de unos momentos de re%isarlo llegue a esto 5e5e ustedes llegando ala zona de arri"a solo hace falta un po$uito de "rain para sa"er la contrase6a un e5emplo es mi anterior tutorial acerca del "utton shop solo es %er si %emos alg!n salto sospechoso lo cma"iamos # si sale el mensa5e $uiere decir $ue mas arri"a esta la comparacin 5e 5e5e 5e 5e5e # eso es todo terminamos con este crackmes %amos al siguiente ni%el 2 nuestra pro<ima %ictima es2 ,eg(sterme "# shado4 ni%el 2 este crackme esta en el concurso G de la H)g. de ,icardo por eso mismo no muestro las soluciones del mismo -1 ahora lo re%isamos con el ,D= packer # %emos esto
&o ha# packer ahora lo a"rimos con oll# d"g # pasamos el message"o< $ue sale al inicio # %eremos la %entana para escri"ir nuestra contrase6a %eamos Escri"imos el usuario # contrrase6a $ue deseemos # de nue%o al tratar de atinarle ala contrase6a nos sale el maldito message"o< repito gran error %eamos 'hora #a sa"emos lo $ue sigue ponemos un "p en @essage"o< # despus corremos # hacemos $ue pare ha# %eamos 'hora estamos parados en el message"o< #a $ue lleguemos al ret con ctrl C fD # pasandolo con f E llegamos al pop e"p $ue conocemos %eamos 'hora lleguemos al ret (#a sa"en como) # lo pasamos con fE # llegamos ala zona tipica %eamos ok lleguemos al ret (#a sa"en como) # pasemoslo con fE ahora %eremos esto >a sa"en $ue de a$u( en adelante pasaremos %arios ret hasta $ue el modulo una direccion de memoria como esta2 /i %emos arri"a ha# un salto a primer %ista me do# cuenta $ue el salto "ueno pero supongo $ue mas arri"a estara la comparacin como les di5e antes para sa"er masomenos como actuan las comparaciones del .net ahora despus de segundos de %eamos lean mi anterior tute por$ue para %encer alos .net no tendremos /prings referentes solo los %enceremos con "rain # poniendo "p en apis les seguire mostrando como llegar sin importar sean los mas dif(ciles 5e5e ahora seguimos #a no e<plicare tan detalladamente las cosas #a $ue se sigue el mismo procedimiento por eso lean con atencin para $ue puedan seguirme si tienen dudas arri"a e<pli$ue todo . nuestra pro<ima %ictima es 2 /erial@e ni%el 2 I Getting harder lo %emos con el rdg packer # %emos esto Veemos $ue no esta empacado ahora seguimos lo corremos con el oll# # %emos la %enta para escri"ir el serial # ponemos lo $ue $ueramos %eamos 'hora #a $ue ingresamos nuestro serial trucho %eamos $ue mensa5e nos manda o si no nos manda ning!n mensa5e de $ue la contrase6a es incorrecta %eamos -1 %eemos $ue nos manda un mensa5ito en el te<to $ue se mue%e hummm..... seg!n mi intuicin de cracker para mi utiliza la api /etBindo4.e<t ustedes $ue opinan J -1 hacemos la prue"a ,EK&K0KE@-/ E* -**> DA= para $ue este el programa antes de mandar el string de incorrecto # ponemos la contrase6a o serial # trucho # %eamos $ue paso a$u( ponemos el "p # corremos +e5e5e5e5 le di al "lanco 5e5e5e -1 eso se de"e ami e<periencia en el cracking pero es %alido estar dando %ueltas pro"ando diferente apis -1 ahora llegamos al ret # lo pasamos despus de pasar el ret %emos esto el t(pico cdigo %eamos >a $ue estemos a$u( pasemos despus de %arios rets como %imos mas arri"a llegaremos a esto %eamos /eg!n el modulo # la direccin es la seccin donde el programa hace sus cochinadas pero si %eemos un poco mas arri"a de donde estamos parados $ue es un pedacito de cdigo # #o creo $ue estamos dentro como de alg!n call de la misma seccin ahora llegamos # pasamos el ret # %emos esto .al # como di5e esta"amos dentro de un call de la seccion donde hace cochinadas miren # aclaro esto no se trata de modificar solo un salto si no de seguir el codigo # entenderlo pero a$u( no les mostrare como le hize para resol%erlo a$u( solo mostrare como llegar al lugar para $ue traceemos # lleguemos en minutos ala contrase6a -1 ahora otra cosa despus de de una hora de darle %ueltas # seguir el serial para fishearlo llegue a un serial $ue para mi era el correcto pero al ponerlo me manda"a a un error # les pido $ue si alguien logra %encerlo me mande un correo de cmo lo logro #a $ue ami me de5o mu# intrigado de si era un error mio o del programa ok terminamos con este ahora seguimos con otro mas dif(cil &uestra pr<ima %ictima es 2 s;tanic0de ni%el2 ; 7Needs special knowledge *o a"rimos con el rdg # %eremos esto2 .ampoco esta empacado entonces lo a"rimos con oll# # como sa"en nos saldra la %entana donde escri"iremos el user # contrase6a %eamos -1 ahora escri"iremos nuestro user # pass $ue $ueramos # presionamos Validate # nos saldra el message"o< $ue com!nmente nos aparece 5e5e5e # entonces pondremos un "p en message"o< # haces $ue pare ha# %eamos2 -1 ahora $ue #a estemos parados en el inicio de message"o< llegamos al ret # lo pasamos # %emos esto El #a conocido pop e"p ahora pasemos el ret $ue sigue # %eamos -1 de a$u( #a sa"emos $ue hacer tendremos $ue pasar una serie de rets como #a sa"emos hasta $ue caigamos en esto2 Veamos el modulo # la seccion donde estamos # es la zona donde se encuentra todo el codigo $ue e5ecuta si %emos mas arri"a encontraremos comparaciones # asi podemos seguir el pass para despus llegar a esto 2 listo el mensa5e del chico "ueno 'hora iremos con el mas dif(cil seg!n los ni%eles de 444.crackmes.de *a pr<ima %ictima es2 D#"olic0rack@e:V1 ni%el2 L 7Hrofessional pro"leme to sol%e8 *o a"rimos con el rdg packer # %emos esto2 -k ahora lo corremos con el oll# # nos ssale la %entanita para poner le el user # pass # ponemos el user # pass $ue $ueramos 'hora al presionar el "oton para $ue compare la contrase6a %emos $ue ahora se trata $ue solo cam"ia el te<to del static de arri"a +e5e5e ahora como %imos antes supongo igual se trata de un /etBindo4.e<t ponemos un "p # -1 ahora #a $ue estamos parados al inicio de set4indo4te<t llegamos al ret # lo pasamos # caemos a$u( -1 esa parte la %imos en todos los programas ok despus de pasar %arios rets como #a les e<pli$ue mas arri"a llegamos ala zona caliente %eamos Mfff 5e5e Vean el modulo #a no dice tantas cosas solo main thread +e5e ahora por cuestiones de tiempo # de cansancio 5e5e5e5 no mostrare el mensa5e de chico "ueno 5e5e5e5 "ueno eso es todo # espero me ha#a e<plicado adecuadamente espero puedan aplicar esta teor(a # puedan guiarse mientras #o espero sacar otra teor(a dedicada a como parchear .net desde la ma$uina %irtual. Agradecimientos: A todos los que alguna vez me apoyaron en seguir adelante y los que colaboraron conmigo en diferentes proyectos , familia ,amigos y a ti por leer este escrito Alejandro Torres (torrescrack) e-mail: torrecrack248@hotmail.com