PROGRAMA

      

PROTECCION

     

HERRAMIENTAS

cyTOm!c`s crackme

crackme 1 Doblecero

DESCARGA

 

Petite

 

Olly Debugger

Plugin OllyDump

 

 

 

 

 

     NIVEL: Avispado

 

 



Repaso al tema de la técnica del PUSHAD con alguna variante antes de pasar a otros packers mas complicados.



Dos crackmes para este capitulo: nuestro viejo conocido sacado del curso de Ricardo y uno nuevo de Doblecero.

Esta forma de desempacar varia un poco de lo visto anteriormente.

Empezamos con nuestro viejo amiguete cyTOm!c`s crackme esta vez empacado con Petite.

Os recuerdo que si no veis el código como en las capturas tenéis la opción  analysis remove analysis para hacerlo legible.

Al cargarlo en Olly aparecemos aquí y vemos mas abajo el PUSHAD

 

Bajamos con F7 hasta rebasarlo

Seguimos ESP en el Dump

Ponemos un BP - Hardware on access – Word  esta es la primera variación: en lugar de ponerlo en Dword  (ya que no aparece) lo pondremos en Word

Pulsamos F9 y aparecemos aquí y en otros capítulos empezábamos a pasar con F7 desde aquí pero en este no podemos pues vemos debajo de command bar que Olly  para en una excepción, esta es otra variación sobre lo ya visto a la hora de desempacar Petite.

Vemos que nos dice que para pasar esta excepción tenemos tres opciones: pulsar shift + F7, shift + F8 o shift + F9

Pulsaremos Shift + F9 y caemos aquí: 4266FE

 

Estamos parados en otra excepción

La pasamos de nuevo con Shift + F9 y caemos aquí:

Como ya no paramos en ninguna excepción empezamos a trazar desde aquí con F7 y si sois un poco observadores veréis un salto lejano (-) a la sección code del crackme

Al pasar esta dirección (44010B) con F7  caemos en el OEP.

Desde aquí solo nos queda volcarlo con el plugin OllyDump – Dump debugged process marcando get EIP as OEP y ya esta desempacado, no hay variación respecto al capitulo anterior a la hora de desempacar, salvo recordar que si no os funciona volcando con method 1 lo hagáis con method 2.

 

 

Crackme 1 de Doblecero empacado con Petite

 

Lo cargamos y aparecemos aquí:

Pasamos el pushad con F7

Hacemos el seguimiento de ESP en el Dump

BP - Hardware on access - Word

Paramos en la primera excepción

 

Que pasaremos con Shift + F9

Caemos en la segunda excepción

 

La pasaremos de la misma forma (Shift + F9) y caemos aquí:

Ya sin excepciones que molesten bajamos con F7 hasta el salto y al rebasarlo con F7 caemos en el OEP, se ve claramente el salto a la zona code.

En este caso vemos que este crackme esta escrito en Visual Basic

Lo volcamos con OllyDump - Dump debugged process – get EIP as OEP y ya esta.

Petite tiene la pequeña diferencia de que antes de llegar al OEP nos encontramos con  un par de excepciones que debemos pasar con Shift + F9 y que en lugar de marcar el BP - Hardware on access – Dword  marcaremos  BP - Hardware on access - Word

 

Bien veamos otra posible forma de encontrar el OEP  en Petite, esta vez experimentando por mi cuenta.

Me fije al hacer pruebas con varios crackmes para este capitulo en una coincidencia:

La dirección donde aparecemos al cargar los crackmes en Olly es la misma donde aparecemos después de pasar las excepciones y se toma el salto definitivo al OEP.

Veréis lo que quiero decir  mejor si comparáis las siguientes capturas

Crackme cyTOm!c`s

Punto donde aparecemos nada mas cargarlo en Olly:  44010B

Punto donde toma el salto al OEP después de pasar la excepciones: 44010B

 

Crackme de Doblecero

 

Punto donde aparecemos nada mas cargarlo en Olly: 408042

 

Punto donde toma el salto al OEP después de pasar la excepciones: 408042

 

Se me ocurrió probar una forma de hallar el OEP distinta: nada más cargarse el crackme  en Olly pongo un BP con F2  para localizar bien esta dirección cuando vuelva pasar por delante de mis narices y paso del pushad y de seguir el dump y demás historias.

Como soy por naturaleza curioso y  autodidacta (al menos hasta que veo que me equivoco ;) lo probé, mirad el resultado.

Nada mas cargarse en Olly pongo un BP con F2  y después pulso F9

Para Olly un poco mas abajo en 440128

Y me indica que paro por un hardware breakpoint que yo no puse, no entiendo el porque ¿? pero sigo  ejecutándolo a ver que pasa.

 

Pulso F9 y para  Olly en la misma excepción que cuando lo pasábamos haciendo la técnica del pushad y demás

Pulso shift + F9  para pasar la excepción y paro en 4266FE igual que antes

La paso con shift + F9 y atención por que veo el BP que puse y justo debajo el salto al OEP

Desactivo el BP que había puesto.

Desde aquí (440106) bajo con F7 hasta rebasar el JMP y caigo de cabeza en el OEP, hago el volcado con el OllyDump y el crackme funciona !!!

Pruebo a hacerlo con el crackme de Doblecero ahora sin poner ningún BP con F2 ni ná de ná, simplemente lo cargo pulso F9 me para en el hardware breakpoint y continuo con F9, paso las dos excepciones con shift + F9 y llego con F7 hasta el JMP lejano y lo rebaso pulsando F7 una vez mas para caer en el OEP, desde aquí vuelco con OllyDump y otro  crackme volcado y funcionando perfectamente, se ven las APIs y las strings !!!

Empaqueto con Petite el crackme de Karpoff del capitulo 3 del curso y siguiendo los mismos pasos se desempaca con éxito !!!

 

Ahora llega la pregunta del millón de dólares: si Petite se puede volcar así por que se hace lo del pushad ¿?

Como soy un novatón y no creo haber descubierto nada nuevo sobre el cracking a estas alturas, me gustaría saber en que me estoy equivocando al hacerlo de esta manera - aunque el resultado parece bueno-.

Ya os dije al principio que íbamos aprendiendo juntos, así que por favor si algún maestro lee esto que me corrija y me lo explique un poco.

Por supuesto cuando os encontreis un exe comprimido con Petite seguid la técnica del Pushad pues la mía esta sin testar por los maestros y la forma en que lo hace Ricardo seguro que no falla.

 

Nos vemos

 

Capitulo siguiente

                                                                                                 


Abril 2004

Pagina oficial del curso

 

Gracias a ...