0) Introduccion. |
1) Herramientas necesarias. |
2) Un vistazo al Procdump. |
3) Descompresi≤n manual. |
4) A±adir un Script. |
5) Nota final. |
0) Introduccion. |
La intencion de este manual es ense±ar como descomprimir nuestro objetivo
cuando no hay un descompresor para el (o por lo menos no lo tenemos). Nuestra cobaya va a ser el CuentaPasos v3.75. |
1) Herramientas Necesarias. |
|
2) Un vistazo al Procdump. |
ProcDump es una herramienta que te permite (entre otras cosas) copiar el contenido
de un proceso al disco duro. TambiΘn te permite editar la cabecera de los
programas de tipo PE (Portable Executable).
Veamos entonces como funciona...
┐Que utilidad tienen las listas?
|
3) Descompresi≤n manual. |
OK!! Empecemos por analizer el fichero. Para ello he utilizado la magnifica
herramienta Gettyp, y los resultados son:
- [cpasos32.exe] ----- Segun parece, nuestro amigo esta comprimido. Pues tiene un Overlay de 318690 bytes, y si nos fijamos, el programa entero ocupa 334562 bytes.
┐Que es lo que sabemos hasta ahora? Sabiendo esto, cargemos a nuestra cobaya en el SoftICE y pongamos un breackpoint al principio del codigo:
0051440A ; S u b r o u t i n e
Bien, ahora ya sbemos que es lo que hace el programa, pero ┐Como vamos a descomprimirlo?
En esta Ocasi≤n, vamos a utilizar la opcion PE Editor, con la que podemos editar
la cabecera del ejecutable (alli entre otras cosas esta el punto de entrada), y
seleccionamos el archivo que hemos creado. Nos aparecera una ventana como esta:
Debemos de fijarnos en los cuadros de texto de Image Base (IB) y Entry Point (EP). El programa empieza a ejecutarse en IB+EP, por lo que sabiendo esto nos resultara fßcil modificar la cabecera para que apunte a 00401228. Tan solo debemos poner en Entry Point 00401228 - Image Base = 00001228. Asi que pongamos 00001228 en Entry Point y pulsemos OK. Prueba a ejecutar ahora el programa!! Bien, Funciona. Ahora ya tenemos el CuentaPasos descomprimido. xDD |
4) A±adir un Script. |
Vamos a a±adir un Script al ProcDump para que sea capaz de descomprimir el
CuentaPasos, asi que editemos el fichero script.ini del ProcDump para a±adir una
nueva entrada:
P1A=PCGUARD v2.10
Realmente es bastante sencillo lo que hace este Script: La primera linea busca
la secuencia de bytes FFE0 que corresponden a los opcodes de JMP EAX, luego
ponemos un BreackPoint y ejecutamos el progama paso a paso para gaurdarlo al disco duro. |
5) Nota final. |
Bueno, esto es todo por hoy. Pero no queria terminar este articulo sin deciros
que este metodo de compresion es realente muy sencillo (Si lo intentamos descomprimir
con el metodo estandar que viene con el ProcDump, tambien tendremos exito :)) ). Pero
mi intenci≤n era ense±ar como hacer esto mismo manualmente y luego a±adir un peque±o
Script al ProcDump para ser capaces de descomprimir otros programas que emplean el mismo
compresor.
PD: Recordad que muchos compresores utilizan trucos antidebug y tambien es posible encontrarse
otros que incluyan codigo antiSoftICE... :))
|
[ Entrada | Documentoz GenΘricoz | WKT TEAM Main Site ] |
[ Todo el ECD | x Tipo de Protecci≤n | x Fecha de Publicaci≤n | x orden AlfabΘtico ] |