Está en la página 1de 19

INTRODUCCION AL CRACKING CON OLLYDBG DESDE CERO

La idea de esta INTRODUCCION AL CRACKING CON OLLYDBG DESDE CERO es la de dar una base para todos los que re i!n se ini ian en el arte del ra "in# on OLLYDBG$ tratando de ser una introdu i%n pero a su &e' que propor ione una base (uerte para poder in#resar a la le tura ) o*prensi%n de tutoriales *as a&an'ados o*o los que se en uentran en el a tual NUE+O CURSO de CRACKSLATINOS$ el ual por supuesto si#ue abierto para se#uir a#re#ando no&edades$ on ursos ) teor,as o*o -asta a-ora. La idea se #enero a partir de que los ne/bies a tuales que leen el lla*ado NUE+O CURSO de CRACKSLATINOS$ se en uentran on que este se ini ia en un ni&el *u) alto$ ) no pueden insertarse #radual*ente en el *is*o$ por lo ual se sienten (rustrados ) *u -as &e es abandonan antes de e*pe'ar$ la idea de esta INTRODUCCION es no repetir los #randes tutes que e0isten en ese urso que son )a *as de 122 ) de un ni&el espe ta ular$ si no *as bien sentar la base para que el que ter*ine esta introdu i%n$ le sea *as (3 il leer ualquier tutorial$ ob&ia*ente requerir3 es(uer'o o*o todo en el ra "in#$ pero la tarea nuestra es tratar de ali&ianar ese es(uer'o$ sentando aqu, las bases del ra "in# en OLLYDBG para que sea o*presible ) se pueda entender (3 il*ente.

PORQUE OLLYDBG?
Aqu, no entrare*os a -a er #randes elu ubra iones o reeditar &ie4as pol!*i as de SO5TICE &s OLLYDBG de ual es *e4or ni nada de eso$ reo que -asta los (an3ti os de SO5TICE re ono en que es *as sen illo e*pe'ar on OLLYDBG$ )a que *uestra *a)or in(or*a i%n ) es *as %*odo para aprender$ la idea es in#resar al *undo del ra "in#$ por la puerta del OLLYDBG$ *as adelante uando uno )a ono e$ puede trasladar (3 il*ente a ualquier debu##er lo aprendido pues a*bian las (or*as de usar de los pro#ra*as$ pero no la esen ia.

LO PRIMERO ES LO PRIMERO
E0a ta*ente lo pri*ero es *unirse de la -erra*ienta que &a*os a utili'ar *a)or*ente$ para ello pueden -a er li A6UI para ba4arlo.

Co*o aqu, esta*os e*pe'ando desde ero pues$ re i!n nos esta*os -a iendo del ar -i&o$ ) a-ora )a que es un ar -i&o 'ipeado$ lo un'ipeare*os on 7IN8I9 pre(erente*ente a una arpeta en nuestro dis o r,#ido que poda*os lo ali'ar (3 il*ente$ una buena idea seria poner di -a arpeta en C:; aunque (un iona en ualquier lu#ar$ )o la pondr! en C:;.

Una &e' des o*pri*ido pode*os entrar a la arpeta ) &er

All, esta el ar -i&o e4e utable OLLYDBG.e0e el ual e4e utare*os para arran ar el OLLYDBG ) al ual para o*odidad le -ar! un a eso dire to en *i es ritorio.

Bueno )a tene*os ba4ado ) preparado para arran ar a nuestro OLLYDBG.e0e$ lo e4e uta*os.

Nos apare e este artel a&is3ndonos que la DLL que esta en la arpeta de OLLYDBG es *as anti#ua que la de siste*a$ si apreta*os SI$ borrara la anti#ua de la arpeta del OLLY ) usara la de siste*a$ )o a pesar de no &er #randes di(eren ias sie*pre pre(iero ele#ir que use la propia antes que la de siste*a$ )a que (ue on ebido on esa dll$ por lo tanto eli4o NO.

All, esta el OLLYDBG &a ,o$ ) o*o sie*pre el pri*er pro#ra*a que abrire*os *as que nada para *irar las di(erentes partes del OLLYDBG ) a &uelo de p34aro poder ubi arnos en sus di(erente partes$ es el (a*oso CRACK<E DE CRUE=EAD que &endr3 ad4unto en este tutorial. 9ara abrir el ar -i&o a debu##ear en el OLLYDBG$ &a*os a 5ILE O9EN o -a e*os li en el i ono

Se abrir3 la &entana para que busque*os el ar -i&o a debu##ear en este aso es el ra "*e de CRUE=EAD.

All, se abre el susodi -o ra "*e ) por a-ora no i*porta que no entenda*os lo que nos *uestra )a *as adelante aprendere*os eso$ la idea es ir *ostrando las partes del OLLYDBG ) iertas on(i#ura iones del *is*o para que uando en su esi&os tutes$ di#a$ por e4e*plo &a)an al DU<9$ sepan al *enos donde esta$ as, que esto es *as que nada para ubi a i%n$ no es un tute pro(undo sobre OLLY.

All, &e*os la uatro partes de la &entana prin ipal del OLLYDBG

>?DESENSA<BLADO : Ta*bi!n lla*ado listado$ aqu, el OLLY nos *uestra el listado desensa*blado del pro#ra*a que &a*os a debu##ear$ por DE5AULT el OLLY &iene on(i#urado para anali'ar el pro#ra*a que &a*os a debu##ear al ini iar$ esto se on(i#ura en O9TIONS@DEBUGGING O9TIONS.

O sea al estar *ar ada esa tilde en AUTO START ANALISIS O5 <AIN <ODULE el OLLYDBG anali'ara el pro#ra*a ) *ostrara in(or*a i%n adi ional sobre el *is*o.

All, esta el listado ini ial del ra "*e de CRUE=EAD anali'ado$ ) si arran a sin anali'ar deba4o pode*os &er la di(eren ia.

La &entana anali'ada *uestra *as in(or*a i%n$ que aunque aun no sepa*os bien que es$ se &e *as o*pleta$ i#ual es bueno saber que de la &entana anali'ada se puede quitar el an3lisis$ si uno no esta de a uerdo on el *is*o o uno se da uenta que el *is*o esta equi&o ado lo ual puede o urrir. <u -as &e es el OLLYDBG *uestra partes que no son listado orre to porque interpreto *al el %di#o e4e utable o*o datos$ en ese aso se &en unos DB o*o estos

En ese aso puedo quitar *anual*ente el an3lisis que el OLLYDBG -a reali'ado -a iendo CLICK DEREC=O en el listado ) eli#iendo ANALISIS@RE<O+E ANALYSIS 5RO< <ODULE

) en ese aso el listado se &era sin an3lisis pero orre to

Otra osita que -a e a la laridad para traba4ar ) que por lo *enos a *i *e #usta$ aunque ada uno puede &ariar en estos te*as es olori'ar los AU<9S Y CALLS eso se -a e -a iendo li dere -o A99EARENCE B =IG=LIG=TING B AU<9S AND CALLS

El resultado es el si#uiente

All, &e*os que en eleste quedan resaltados los CALLS ) en a*arillo los AU<9S$ lo ual es *as laro para la &ista. Bueno on eso nuestro listado queda *as (3 il de interpretar$ aunque aun no ten#a*os la *as re*ota idea de que si#ni(i a$ pero bueno -a) que preparar antes las -erra*ientas para poder ir de a po o aprendiendo C?REGISTROS La se#unda &entana i*portante del OLLYDBG es la de los REGISTROS

Re orda*os que la &entana de re#istros se en uentra en la parte superior dere -a del OLLYDBG$ all, *uestra bastante *as in(or*a i%n que los re#istros en si.

Tiene *u -,si*a *3s in(or*a i%n que aun no &ere*os$ pero se puede a*biar el *odo de &isuali'a i%n en tres (or*as. D+IE7 59U REGISTERS$ +IE7 ED NO7 REGISTERS ) +IE7 DEBUG REGISTERS? por de(ault &iene ele#ida la pri*era.

9or a-ora no a-ondare*os *u -o en eso )a que nos preo upare*os *3s que nada en el te*a REGISTROS ) 5LAGS$ lo *en iono para que sepan que -a) &arias &istas en el re#istro. 3)STACK O PILA: Bueno all, &e*os el lla*ado STACK O 9ILA aqu, no -a) *u -a on(i#ura i%n posible solo la op i%n de *ostrar la in(or*a i%n relati&a al re#istro ES9 o al re#istro EB9.

Por default y lo que mas se utiliza es la vista relativa a ESP, pero para cambiar a la vista segn EBP, haciendo clic derecho en el stack eligiendo G ! EBP cambiamos y para volver G ! ESP volvemos a la opci"n por default#

En sucesivas entregas e$plicaremos bien el funcionamiento del stack por ahora miramos como se puede variar su configuraci"n solamente# 4) DUMP: %a ventana del &'(P tiene muchas opciones de visualizaci"n, por &E)*'%! nos muestra la visualizaci"n +E,*&E-.(*% de / columnas o bytes, la cual puede ser modificada haciendo -%.-0 &E1E-+ en el &'(P y eligiendo la opci"n deseada#

%a opci"n por &E)*'%! es la que generalmente mas se usa, aunque tenemos opciones para cambiar para mostrar desensamblado 2&.S*SSE(B%E3, !e$to 2!E,!3 y diversos formatos 2S+ 1!, % 4G, )% *!3

5 adem6s la opci"n SPE-.*% 7 PE +E*&E1 que mas adelante en pr"$imos cap8tulos veremos para que sirve esto que es muy til#

5a conocemos las partes que se ven en la ventana principal del %%5&BG, aunque tambi9n hay m6s ventanas que no se ven directamente, se puede acceder a ellas, tanto por el men, como por los botones de las vistas#

:eremos que es cada uno El bot"n % o :.E;<% G nos muestra lo que el %%5&BG escribe en la ventana del % G lo cual puede ser configurado para mostrar diferentes tipos de informaci"n, por default en la ventana del % G va guardando all8 informaci"n sobre el arranque, y de la informaci"n escrita en el mismo por los diferentes B1E*0P .4!S - 4&.-. 4*% % GS, lo cual se vera mas adelante, por ahora vemos all8 ,la informaci"n del proceso que arranco, en este caso el crackme de cruehead, las dll que cargo, y ciertos tips sobre el an6lisis#

'na de las opciones mas importantes de esta ventana es la de loguear a una fila, para ciertos casos que deseemos guardar la informaci"n en una fila de te$to, en ese caso -%.-0 &E1E-+ <% G ! ).%E#

El bot"n E o :.E;<E,E-'!*B%ES nos muestra la listado de los e=ecutables que utiliza el programa, e$e, dlls, oc$s, etc

*qu8 tambi9n el bot"n derecho tiene muchas opciones que por ahora no veremos ya que estamos mirando en forma general al %%5&BG# El bot"n ( o :.E; 7 (E( 15, nos muestra la memoria ocupada por nuestro programa, all8 se ven las secciones del e=ecutable, dlls que utiliza el proceso, as8 como el stack y diversas secciones allocadas por el sistema, y muchas veces al correr los programas, los mismos realizan nuevas allocaciones de memoria# En tiempo de e=ecuci"n#

+aciendo clic derecho podemos hacer SE*1-+ en la memoria para buscar en ella, strings, cadenas he$a, unicode etc, adem6s nos da la posibilidad de colocar diferentes tipos de breakpoints en la secciones, como asi tambi9n la posibilidad de cambiar el acceso a las mismas con SE! *--ESS ya profundizaremos en esto# El bot"n ! o :.E;<!+1E*&S nos da el listado de los !+1E*&S del programa

*unque no sabemos aun que es esto y la e$plicaci"n llegara en los pr"$imos cap8tulos es bueno ir familiariz6ndose en donde esta cada cosa, luego aprenderemos que es y como se usan mas adelante# El bot"n ; o :.E;<;.4& ;S nos muestra las ventanas del programa, como aun no corri", no hay ventanas as8 que esta vac8a#

El bot"n + o :.E;<+*4&%ES, nos muestra los handles por ahora local8cenlo, ya e$plicaremos que es y para que sirve

El bot"n - o :.E;<-P' nos retorna a la ventana principal del programa# El bot"n > o :.E;<P*!-+ES nos muestra los parches si el programa ha sido modificado, por ahora esta vac8o al estar sin cambios

El bot"n 0 o :.E;<-*%% S!*-0 nos muestra el call stack, que es el listado de los calls que entramos, hasta el punto donde el programa esta detenido#

El bot"n B o :.E;<B1E*0P .4!S es el listado de los breakpoints comunes colocados en el programa, no muestra los hard?are breakpoint ni los memory breakpoints aqu8, solo los BP comunes#

El bot"n 1 o :.E;< 1E)E1E4-ES nos muestra la ventana de referencias la cual nos da los resultados de cuando hacemos una bsqueda de referencias en el %%5

El bot"n @ o :.E;<1'4 !1*-E, nos muestra el listado si hemos hecho algn 1'4 !1*-E en nuestra maquina, y tiene tambi9n la posibilidad de elegir % G ! ).%E, para guardar el resultado del traceo en un archivo t$t

Bueno hasta aqu8 un paneo a vuelo de p6=aro por los botones mas importantes, no detallamos e$plicaci"n porque aun hay que aprender antes algo de *S(, y practicando el uso del %%5&BG podremos ir aclarando mas profundamente para que sirve cada bot"n y cada P-. 4, la idea es irse familiariz6ndose con donde est6n las cosas que veremos en las pr"$imas entregas# COMO CONFIGURAR EL OLLYDBG COMO JIT ( JUST IN TIME DEBUGGER) *claro que no conviene tener configurado el %%5&BG constantemente - ( A.!, solo conviene hacerlo en ocasiones especiales, ya que al estar como A.! capturara el error de cualquier programa de nuestra maquina y arrancara solo, lo cual puede resultar molesto si no estamos debuggeando o crackeando, por lo tanto les enseBo como se configura para casos especiales, pero conviene de=arlo con la opci"n que trae por default que no esta como A.!# Para colocar el %%5&BG como A.! vamos a P!. 4S<A'S! .4 !.(E &EB'GG.4G

5 aprieto el bot"n (*0E %%5&BG A'S! .4 !.(E &EB'GGE1 y & 4E

Para quitarlo, en el mismo lugar aprieto 1ES! 1E A'S! .4 !.(E &EB'GGE1 y & 4E

Agregando PLUGINS a OLLYDBG El %%5&BG trae la opci"n para agregar plugins que nos son necesarios para realizar cierta tarea, por ahora solo agregaremos el plugin - ((*4& B*1 para aprender como se agregan los mismos# Ba=amos el plugin - ((*4& B*1 el cual puede ser ba=ado de *C'D y la mayor8a de los plugins se hallan *C'.

*ll8 esta ba=ado en mi escritorio el plugin lo descomprimo con ;.4E.P entro a la carpeta que descomprim8 a ver el contenido

*hora antes que nada crearemos una carpeta para los P%'G.4S en nuestra maquina, yo la creare en -F> y la llamare P%'G.4S nada mas# :oy a - y creo una 4'E:* -*1PE!*

*ll8 esta, puede estar ubicada en cualquier lugar, pero a mi me gusta tener todo en - por eso la coloque all8, de cualquier forma debemos configurar el %%5&BG para que reconozca esta carpeta como la que tendr6 los plugins# Para ello en el %%5&BG vamos a P!. 4S<*PPE*1*4-E

5 en la ventana que se abre vamos a la pestaBa &.1E-! 1.ES

:emos que en donde apunta al path de los plugins 2P%'G.4 P*!+3, en realidad nos esta apuntando a la carpeta donde esta el %%5&BG#e$e y podr8a de=arlo all8, pero a mi me gusta tener los plugins separados por lo tanto en donde dice P%'G.4 P*!+< B1 ;SE busco la carpeta que cree para mis plugins#

*ll8 eleg8 la carpeta P%'G.4S que cree y sale este aviso

sea que debo reiniciar el %%5 para que me reconozca la nueva carpeta de plugins, pero antes copio el contenido que ba=e del comand bar a mi carpeta de plugins#

*ll8 copie todo el contenido y lo pego en mi carpeta P%'G.4S

*ll8 esta el contenido del plugin -ommand Bar en la carpeta P%'G.4S, cada plugin que ba=e y agregue solo deber9 copiar su contenido all8, muchas veces con copiar solo la dll es suficiente# *horra cierro el %%5&BG si lo tenia aun abierto y lo reinicio# :emos que en el men P%'G.4S me apareci" el - ((*4& B*1 y las opciones del mismo#

* su vez en la parte inferior del %%5&BG vemos la - ((*4& B*1 instalada

Es una barra para tipear comandos que nos facilitara mucho las cosas, mas adelante veremos su uso, por ahora lo importante es saber agregar plugins# Para quitar cualquier P%'G.4 con solo quitar la dll correspondiente de nuestra carpeta P%'G.4S y reiniciar el %%5&BG, desaparecer6, les aconse=o que de=en siempre activa la - ((*4& B*1# *rranco nuevamente el crackme de -1'E+E*& E4 %%5&BG La! "e# a! $a! %!ada! en e OLLYDBG !on: )GF E=ecuta una sola l8nea de c"digo 2si estas en un -*%% entra al mismo a e=ecutarlo por dentro3 )/F E=ecuta una sola l8nea de c"digo 2si estas en un -*%% no entra al mismo lo e=ecuta completo sin entrar y sigue en la siguiente l8nea luego del -*%%3 Esos dos formas de tracear manualmente son verdaderamente diferentes y segn cada caso usaremos )G o )/ lo cual veremos m6s adelante# )HF -oloca un Breakpoint - ('4 en la l8nea que marcas con el (ouse o esta grisada en el listado, para quitar el BP apretas nuevamente )H# Por e=emploF

Cuiero poner un BP en IJKJK* pues marco con el (ouse esa linea

*l hacer clic una sola vez se marca y queda grisada como vemos en la imagen, luego apreto )H#

:emos que se pinta de ro=o la zona de la direcci"n, eso significa que hay activo un BP o Breakpoint all8, si apreto )H nuevamente se quita# )LF Para -orrer el programa es similar a 1'4, con esto el programa correr6, hasta que encuentre algn B1E*0P .4!, o alguna E,-EP-. 4 que lo detenga o ).4*%.-E por algn motivo, al apretar 1'4 veremos en la esquina inferior del %%5&BG la palabra 1'44.4G o sea que esta - 11.E4& #

*ll8 arranco el -1*-0(E &E -1'E+E*&, lo podemos ver correr

Si P*'S la e=ecuci"n en %%5&BG apretando )KH o &EB'G 7P*'SE

:emos que el %%5&BG cambia a mostrar P*'SE& o sea que esta P*'S*& , podemos volver a hacerlo correr con )L o &EB'G<1'4# Para cerrar el programa que esta siendo &EB'GGE*& apreto &EB'G<-% SE

Bueno esto a sido una mirada a vuelo de p6=aro del %%5&BG la cual profundizaremos mas adelante pues tiene much8simas opciones y configuraciones las cuales seguiremos estudiando en las pr"$imas entregas, es muy til que ba=en el programa lo configuren y miren donde est6n las cosas que muestra este tute, as8 como le agreguen el plugin para practicar, y hagan correr y pausar el -1*-0(E &E -1'E+E*&, prueben ponerle un Breakpoint y practiquen esas cosas para que en la segunda entrega est9n mas familiarizados con el mismo y podamos avanzar lento pero seguro, y sin dudas# 'n abrazo a todos los -1*-0S%*!.4 S +asta la parte H 1icardo 4arva=a JG de noviembre de HJJM

También podría gustarte