Joshy <br><br>Me llama la atencion tu comentario de que un ejecutable que sera lanzado<br>varias veces no debe comprimirse.<br><br>Esto se aplica en el caso de un ejecutable en un servidor que es accesado<br>por varios clientes , y ejecutado desde cada pc cliente ?<br>
<br>Es mi caso de un ejecutable en Harbour que esta comprimido con UPX<br>y se ejecuta desde cada cliente.<br><br>Comenta<br><br>Bruno<br><br><div class="gmail_quote">El 30 de junio de 2009 16:57, JoshyFun <span dir="ltr"><<a href="mailto:joshyfun@gmail.com">joshyfun@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello Edwin,<br>
<br>
Tuesday, June 30, 2009, 9:02:41 PM, you wrote:<br>
<br>
EQ> Alguien puede explicar que hacen esas aplicaciones de UPX y<br>
EQ> Strip porque la verdad me estan asustando. Alguein podria postear<br>
EQ> algun manual o algo por el estilo de como reducir los ejecutables<br>
EQ> porque veo que ya se ha hablado mucho de eso aca<br>
<br>
UPX es un compresor especializado en .EXE ya que este tipo de archivos<br>
tiene caractrísticas propias como por ejemplo que algunas partes no se<br>
deben de comprimir, otras tienen comportamientos previsibles (como<br>
tablas de offsets), etc. Lo que hace básicamente es comprimir "a su<br>
estilo" el EXE y añadirlo a un "stub" o cabecera de ejecución. Cuando<br>
lanzas el .EXE sed ejecuta el "stub" que coje el resto del EXE (que es<br>
lo que está comprimido) lo descomprime en memoria y arranca el<br>
programa normalmente. Es detectado como un virus por algunos antivirus<br>
debido a que usa las mísmas técnicas que muchos virus que es cambiar<br>
el "Entry point" de los ejecutables (normal, por culpa del "stub") y<br>
también por que algunos virus han usado UPX para comprimir sus<br>
maliciosos códigos. Es totalmente seguro siempre que la fuente sea la<br>
del autor como todo.<br>
<br>
Un ejecutable que vaya a lanzarse en múltiples copias a la vez no debe<br>
de ser comprimido con UPX (ni con ningún otro compresor) aunque esta<br>
es una cosa poco habitual salvando algunos programas de Microsoft como<br>
el famoso "svchost.exe".<br>
<br>
Sobre el "strip" como decía del UPX un EXE tiene varias partes,<br>
algunas son obligatorias (son el EXE en si mismo) como el código,<br>
tabla de relocalizaciones, recursos, etc, pero un EXE puede tener más<br>
partes, y en el caso de FreePascal, una que usa es la parte de debug,<br>
donde en el EXE ponen toda la información que permitirá al GDB<br>
mostrarnos los nombres de las funciones que han sido llamadas en el<br>
caso de un error, donde se definen los tipos de las variables, etc.<br>
Esta información sólo es necesaria cuando hacemos un debug, por lo<br>
tanto "strip --strip-debug" nos elimina esa sección del EXE. A parte<br>
existen otros tipos de secciones que son prescindibles totalmente y<br>
que las eliminas con "strip --strip-all". Por supuesto después de un<br>
"strip-all" ese mismo EXE no podrá ser debugado de un modo aceptable,<br>
por eso sólo se debe de usar cuando vamos a entregar el EXE final al<br>
cliente.<br>
<br>
--<br>
Best regards,<br>
<font color="#888888"> JoshyFun<br>
</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br>