Problema al re-empacar conUPX [RESUELTO]

Iniciado por OrtaY, 31 Octubre 2011, 17:53 PM

0 Miembros y 1 Visitante están viendo este tema.

OrtaY

Hola, soy nuevo por aquí, porque aunque os leo desde hace mucho, siempre he conseguido resolver mis dudas leyendo topics anteriores y tutoriales.
Pero el problema que tengo ahora no consigo solventarlo.


Mi problema es que al re-empacar con UPX el archivo ejecutable queda inservible, porque no arranca.

Es decir, tengo un ejecutable empacado con UPX, y tras desempacarlo manualmente, dumpearlo y restaurar la IAT funciona perfecto, retoco incluso el baseCode y renombro las secciones para volver a empacarlo con UPX, pero al hacerlo, el ejecutable resultante no arranca.

Me podeis recomendar algun tutorial que explique como recomponer un ejecuble desempacado manualmente para que pueda ser empacado nuevamente con UPX.

Probando con otros ejecutables he notado que al desempacarlo con UPX (de forma automatica) y hacerlo de forma manual, las secciones son completamente diferentes (varian el numero de secciones, los indices y los nombres de las mismas), y si vuelvo a empacar el desempacado de forma automatica si sigue funcionando, pero el desempacado de forma manual, al volver a empacarlo ya no funciona.

El asunto es que a mi ejecutable no puedo desempacarlo de forma automatica (o mejor dicho, no se hacerlo) ya que en realidad es un ejecutable empacado con armadillo v.6 y UPX, de modo que la unica forma que he encontrado para hacerlo es de forma manual, y como he explicado, tras dumpearlo y reconstruir la iat, si lo vuelvo a empacar con UPX ya no arranca.

Alguna posible solucion?

Gracias de antemano, y aprovecho para saludar a Shaddy, Karmany, Apuromafo, entre otros, porque gracias a sus tutoriales cada dia se un poquito mas :)

OrtaY

Para explicar de forma mas grafica el problema, he utilizado como ejecutable de ejemplo el crackme del tutorial:

874-Desempaquetando un UPX para RE-Newbies por Shaddy

En la imagen pueden verse las secciones de los distintos ejecutables:

Archivo original
Desempacado automatico
Desempacado manual
Re-empacado del desempacado automatico
Re-empacado del desempacado manual (este es el que no funciona)


_Enko

#2
Intentaste comparar las PE mas detalladamente  de la ejecutable desempacada con upx y la ejecutable desempacada manualmente?
(Para ver las diferencias)

Si es una ejecutable de Borland (Delphi, CppBuilder) entonces en el desempacado manual te faltan secciones, o mejor dicho estan unidas.

OrtaY

Gracias Enko por contestar,

te comento que no puedo comparar las secciones del desempacado manual y el automatico porque el archivo en cuestion no he podido desempacarlo automaticamente, ya que es un armadillo v.6.

El lenguaje en que esta programado es Microsoft Visual C++ segun el RDG

He puesto este crackme como ejemplo porque al no tener armadillo si he podido desempacarlo manualmente y de forma automatica, y ahi me he dado cuenta que efectivamente faltaban sesiones o estaban unidas, tambien cabe destacar que el reempacado del manual pesa 53kb mientras que el reempacado del automatico pesa 168kb.

Como puedo evitar que se pierdan o unan esas sesiones al volverlo a comprimir con upx? En realidad no me importa que las sesiones sean distintas, yo lo que quiero es que el ejecutable siga funcionando despues de volverlo a empacar.

Algun tutorial o programa que me ayude con esto. He buscado por google y por esta pagina pero no he encontrado solucinarlo.




.:UND3R:.

Disculpa mi intromisión pero para que quieres reempacarlo en UPX?

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

OrtaY

CitarDisculpa mi intromisión pero para que quieres reempacarlo en UPX?

Saludos

En un principio era para bajarle al archivo de mas de 10mb a menos de 3, pero también me interesa aprender a desempacar UPX de forma manual pero dejando un archivo realmente desempacado, no una ristra de secciones unidas, que incluso el RDG sigue detectando el UPX en el archivo desempacado.

Y esa es justamente mi pregunta, es posible desempacar un archivo protegido y comprimido por armadillo v6 standard protection y UPX, pero obteniendo un ejecutable realmente desempacado, con sus secciones originales?

Gracias :)

.:UND3R:.

Cita de: OrtaY en  2 Noviembre 2011, 15:26 PM
En un principio era para bajarle al archivo de mas de 10mb a menos de 3, pero también me interesa aprender a desempacar UPX de forma manual pero dejando un archivo realmente desempacado, no una ristra de secciones unidas, que incluso el RDG sigue detectando el UPX en el archivo desempacado.

Y esa es justamente mi pregunta, es posible desempacar un archivo protegido y comprimido por armadillo v6 standard protection y UPX, pero obteniendo un ejecutable realmente desempacado, con sus secciones originales?

Gracias :)

Si desempacamos de manera manual por lo general no obtendremos el archivo original (secciones, PE header, tamaño) desempacado con el mismo software, ya que quieres volverlo a empacar por tan solo el peso, podrías empacarlo con otro packer como Aspack, esa es una opción que se me ocurre, sin más que decirte espero que sea de ayuda o idea mi comentario

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

apuromafo CLS

pensemos que tenemos el upx, comienza algo asi

1) pushad
2) descompresion de apis
3)popad
4) salto al oep
5) en el oep!!!!!


ahora bien, desempacado, pero esta aun 1-4, debes nulificar ese sector, que en si no sera usado, luego al tomar el upx y empacarlo denuevo al oep, deberia ir denuevo al mismo entrypoint anterior, al encontrar que ya tiene Pushad, posiblemente desalinea mal o bien detecta que las apis estan ok, por lo cual no verifica las secciones ni overlay, secciones icono ni nada

por ende Como hacerlo mas rapido?
1) desempacar rapido con Pe Xplorer de heaventools
2) nulificar la sección donde antes estaba
3) volver a empacar, luego de REPARADA LA IAT
empacar y cardar la IAT denuevo.

saludos Apuromafo

OrtaY

Gracias Apuromafo, me pondré a ello, y en cuanto tenga resultados positivos, los publico, por cierto, conoces algún tutorial al respecto, sobre reparar manualmente archivos desempacados tambien manualmente, estuve revisando todos los tutos de ricardo pero no encontre nada que se adapte a mi caso.

Saludos, OrtaY

OrtaY

Cita de: .:UND3R:. en  2 Noviembre 2011, 17:33 PM
Si desempacamos de manera manual por lo general no obtendremos el archivo original (secciones, PE header, tamaño) desempacado con el mismo software, ya que quieres volverlo a empacar por tan solo el peso, podrías empacarlo con otro packer como Aspack, esa es una opción que se me ocurre, sin más que decirte espero que sea de ayuda o idea mi comentario

Saludos

Gracias  Und3r, pero prefiero intentarlo de forma manual, de todos modos te comento que probe aspack2.4 y lanza "unkown error" antes de finalizar el proceso, quiza por falta de memoria del equipo.