Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   UPX ¿como funciona? (https://www.clubdelphi.com/foros/showthread.php?t=63289)

JXJ 07-02-2009 03:46:19

UPX ¿como funciona?
 
¿el compresor upx como funciona?

tengo entendido que el programa tiene un stub.
al cual se le mete contenido comprimido. y el stub es el encargado
de descomprimir el contenido en la memoria.
y ejecutar el programa, entonces el stub se cierra.

ahora bien..
¿como se ejecuta un programa en memoria?

por que usando la undad shellApi,

se puede ejecutar un programa que se tiene en el discoduro
¿pero en memoria?

estoy usando los componentes vcl zip
que son para comprimir con formato compatible al winzip.
y ya logre hacer un programa stub. y extraer el exe fisicamente
a una carpeta o al mismo directorio donde esta el stub.
pero no se como ejecutarlo en memoria. como lo hace el UPX

gracias..

cHackAll 07-02-2009 16:02:35

No se si es correcto el termino Stub pero te explico rapidamente. El funcionamiento en la mayoria de los compresores, encriptadores, protectores de ejecutables y hasta los virus es muy parecida, modifican el punto de entrada del ejecutable al que tu llamas "Stub", el cual es un pequeño programa encargado de procesar y revertir un buffer a su "estado" original. Luego de haber realizado dicha accion simplemente tiene que realizar un llamado al buffer original (procesando sus secciones, direcciones absolutas y relativas y finalmente su punto de entrada original).

En todos los casos es la misma aplicacion que ha realizado un proceso de pseudo polimorfismo, en ninguno de los casos ha cargado una aplicacion externa en su mismo espacio virtual.

Conociendo un poco la estructura (COFF) de un ejecutable, podrias llegar a tu acometido, pero sin mas informacion no le veo sentido. La idea seria cargar el ejecutable con LoadLibrary, obtener su EntryPoint y mediante un par de calculos "cederle" el control a la segunda aplicacion.

Suerte

JXJ 08-02-2009 03:50:09

yo no hablo de
cargar una aplicacion externa en su mismo espacio virtual.

por que la aplicacion esta comprimida en un ejecutable. el stub. extrae la aplicacion
y me parece que la ejecuta. en memoria. sin pasar a guardarla en disco. y despues ejecutarla.

De lo demas no te entendi.. nada.

cHackAll 08-02-2009 19:58:54

Cita:

Empezado por JXJ (Mensaje 337429)
...no te entendi.. nada.

pues ya somos dos :o


La franja horaria es GMT +2. Ahora son las 15:01:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi