Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 11 Agosto 2011, 08:20 am



Título: [Tutorial] Crackeando DrDepth
Publicado por: .:UND3R:. en 11 Agosto 2011, 08:20 am
Crackeando DrDepth
Programa:DrDepth V4.0.10
Instalador:drd4p0p10_PCsetup.exe
Página:http://www.drdepth.se (http://www.drdepth.se)
Objetivo:Parchear
Autor:UND3R

-Conociendo el programa:
Una vez instalado, lo primero que se debe hacer, es saber con qué tipo de programa se está trabajando(Crackeando),es decir el lenguaje en cual está programado y si está empaquetado, para eso utilizamos: RDG Packer detector,tras realizar el análisis, este nos muestra lo siguiente:

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/1.jpg)
(*Recordamos que RDG Packer tiene dos tipos de detecciones una es por código y otra por análisis heurístico)



Luego de haberlo analizado iniciamos DrDepth desde Ollydbg y lo primero que nos mostrará será lo siguiente:

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/2.jpg)

Por curiosidad intentaremos colocar un BP en la API:
Citar
GetDlgItemTextA
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/3.jpg)
Aclaramos que esta API se encarga de almacenar aquellos caracteres que han sido introducidos en un control o cuadro de diálogo

Introducimos un serial falso:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/4.jpg)

Y si presionamos aceptar,el debugger no se detiene en la API y nos muestra el siguiente mensaje:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/5.jpg)

Por lo que al aparecer el mensaje se podría utilizar la API:
Citar
MessageBoxA

Reiniciemos y coloquemos un BP en dicha API:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/6.jpg)

al dar aceptar si vemos la PILA o STACK desde Olly,Notaremos hacia donde retornará (address) una vez lanzada esta, en este caso 0053CCB1 como lo muestra la imagen:

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/7.jpg)

Nos dirigimos hacia ella presionando Control+G y colocamos la dirección de retorno de la API:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/8.jpg)

Nos aparecerá:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/9.jpg)

Si seguimos subiendo llegamos hasta el inicio en intentaremos colocar un bp ahí,reiniciamos y colocamos un BP para saber si en esa zona se puede observar que el programa ya realizó la comprobación:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/10.jpg)

al detenerse, si observamos a EAX, notaremos que el programa ya ha comprobado nuestro serial falso:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/11.jpg)

Si miramos la Pila:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/12.jpg)
Notaremos por así decirlo algo interesante y es que nos muestra el punto de retorno de la call anterior(última call) antes de que se detuviera, por lo que dirijámonos hacia ella, una vez que ya lo hemos hecho, subiremos hasta el final,anotemos el inicio, reiniciamos y colocamos un bp (53D0E4)
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/13.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/14.jpg)
y al darle RUN(F9) si nos fijamos en EAX, notaremos que el programa de nuevo ya ha comprobado nuestro serial falso, por lo que nos volveremos a fijar en nuestra PILA:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/15.jpg)
00452963

la retorno nos lleva:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/16.jpg)

si nos fijamos vemos una string llamativa, un poco familiar en todo este tutorial:

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/17.jpg)

Pero si seguimos subiendo, notaremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/18.jpg)

y un salto muy Interesante:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/19.jpg)

reiniciemos y NOPIEMOS (NOP)

(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/20.jpg)

si guardamos los cambios y si le damos RUN nos mostrará lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/DrDepth/21.jpg)

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