PROGRAMA

      

PROTECCION

     

HERRAMIENTAS

cyTOm!c`s Crackme 1

DESCARGA

 

UPX

 

Olly Debugger

PE_editor

GUIPeX

 

 

 

 

 

     NIVEL: Homínido

 

 



Veamos  como resolver un nuevo packer utilizando lo visto hasta ahora, buscaremos el OEP con la técnica del PUSHAD y

Después utilizaremos otra forma de encontrarlo así entenderéis el por que del “fallo” del capitulo anterior cuando buscaba desempacar FSG “a mi manera”.



Empezaremos viendo dos formas de encontrar el OEP

Técnica del PUSHAD

Esto ya lo vimos en capítulos pasados así que iré rápido, si tenéis dudas consultad los cap 11 y 12.

Abrimos el exe en Olly y pasamos el PUSHAD con F7 una sola vez y hacemos el Follow in dump de ESP

Sombreamos los 4 primeros bits empezando por arriba a la izquierda en el dump ( los que pertenecen a EDI) y ponemos un BP - hardware on access - Dword

Corremos el crackme con F9 y caemos aquí: 4429EF donde vemos el símbolo que como dije en el capitulo anterior nos indica el salto a un lugar lejano o a una dirección dentro de otra sección del exe

Lo pasamos pulsando una sola vez F7 y caemos aquí:

Como este crackme empieza a ser un viejo conocido ya sabemos de sobra que este es el OEP.

Hemos seguido los mismos pasos para hallar el OEP que utilizamos a la hora de hallarlo en un exe comprimido con Aspack o Pe compact: la técnica del pushad o como queráis llamarla.

Otra forma que os sonara del capitulo anterior, la llamare técnica del salto lejano que suena como a kung-fu o a oriental que esta de ahora muy de moda.

Técnica del salto lejano.

Pues hacemos lo mismo que hice al buscar el OEP en FSG en el capitulo pasado: desde el pushad donde aparecemos al cargarse el crackme en Olly bajamos por el código hasta encontrar un salto lejano a otra zona de código (sin pulsar tecla ninguna, simplemente con la rueda del ratón o las flechitas de scroll laterales)

En este caso llegamos aquí y si os fijáis y comparáis con la técnica del pushad anterior llegamos al mismo punto que llegábamos siguiendo ESP en el dump y poniendo el BP hardware on access Dword: 4429EF

Ponemos un BP con F2 Y corremos el crackme con F9

Cuando nos para en el BP que hemos puesto pulsamos una sola vez F7 y llegamos al OEP

Son dos caminos distintos pero llegamos al mismo sitio.

El segundo camino es mas rápido pues solo debéis navegar por el código utilizando la ruedecilla del ratón hasta encontrar el salto lejano que nos lleva a una dirección dentro de la zona code.

Veréis que las vueltas “tontas” que dimos en el capitulo anterior analizando FSG tenían un fin: irnos preparando para lo que viene después e ir viendo maneras de buscarnos la vida de distintas formas a la hora de enfrentarnos a los distintos packers.

 

Volcando el crackme para dejarlo sin protección

Una vez hemos encontrado el OEP de cualquiera de las dos formas explicadas anteriormente utilizaremos el plugin OllyDump – Dump debugged process

Como en capítulos anteriores cogemos el EIP as OEP

  y pulsamos 

Le damos un nombre al archivo y lo guardamos.

Probamos el archivo que acabamos de volcar y vemos que el crackme se ejecuta sin problemas, en siguientes capítulos veremos que esto no siempre sale tan bien a la primera (por desgracia).

Como en todos los empaquetados en este no podíamos ver las APIs ni las String references al cargarlo en Olly

Nos muestra estas pocas APIs que no nos sirven de nada

    

Y estas strings de las que no sacamos nada en claro  

 

Cuando lo desempacamos:

APIs a tutiplén

  Y vemos las strings 

 

Importante!!!: si no podéis ver las strings en el crackme desempacado claramente como se ven en esta imagen superior debéis marcar una opción en Olly: en el menú Options de Olly abrimos debuggin options y vamos a la pestaña debug en search for references in: marcamos la casilla  Memory block currently selected in disassembler.

Con esta opción marcada ya veremos las strings como en la imagen superior y podremos analizar el crackme.

UPX vencido.

Utilizando GUIPeX para eliminar UPX: técnica del monje durmiente (vago- vaguisimus)

Abrimos GUIPeX y arrastramos el crackme comprimido hasta la ventana superior izquierda y allí se escribirá la ruta y el nombre del crackme

En la parte de la derecha en UPX commands cambiamos compress que es lo que viene por defecto por decompress que es lo que nos interesa

    cambiamos para descomprimir  

 

  Pulsamos      y ya tenemos el crackme descomprimido, sin aprender nada, sin rompernos el coco pero efectivo…

                                                                                   …bueno creo que Shoulck nos tiene preparada una sorpresa sobre el tema upx pero eso ya lo veremos mas adelante.

 

Ahora si abrimos el desempacado en Olly nos iríamos por ejemplo a la dirección 4250B2 que es donde se halla la String Hey, you have done it  (significa algo así como: Hey, lo hiciste) y siguiendo la técnica del monje durmiente y no cansarnos demasiado cambiaríamos el salto para hacer aparecer el cartelito.

Si, debajo se ve unregistered, pero eso os lo dejo a vosotros que el fin de este capitulo es aprender a desempacar, no buscar el serial del crackme.

 

Se acabo el capitulo pero no me gustaría despedirme sin agradecer una vez mas (nunca es suficiente) a Shoulck la gran ayuda que me esta prestando.

Nos vemos.

 

 

Capitulo siguiente

                                                                                                 


Abril 2004

Pagina oficial del curso

 

Gracias a ...