Array
(
)

O Upx pode ocasionar problemas na aplicação ?

Lnunes
   - 28 mar 2006

Baixei o UPX para compactar os meus executáveis e com isto ganhar um pouco mais de segurança contra os descompiladores, contudo pesquisando no fórum encontrei uma questão levantada pelo moderador massuda sobre o upx.


(*Observação do moderador massuda*)
Nunca, em hipótese alguma, compacte seu executável (em particular com o UPX). Esses compactadores de executável costumam alterar os endereços de carga dos módulos... o endereço de uma função/procedure quando o executável é gerado fica diferente do endereço quando o executável é usado, resultado: as informações que você captura na exceção estão todas erradas!

Agora estou com as seguintes dúvidas:

1°- A utilização do UPX é recomendavel ?

2° -A utilização do UPX pode trazer outros problemas no futuro ?


Desde já agradeço a atenção de todos


Paulocesar1301
   - 28 mar 2006

Quem sou eu para ir de encontro à opinião do Massuda, porém...
... compacto meus executáveis no máximo e nunca... nunca tive problema algum... e utilizo desde 1998 !!

Abs e Bons Códigos :wink:


Weber
   - 28 mar 2006

Na verdade não vejo um motivo para ´compactar executáveis´ não há nenhum ganho de velocidade e ainda se corre o risco de surgirem erros malucos.

Não estamos mais na era MS-DOS, não existe tamanho máximo para um executável, além do mais o tamanho do programa não tem relação com seu consumo de memória.


Paulocesar1301
   - 28 mar 2006

Porém se vc trabalha com atualizações de sub sistemas ao iniciar as máquinas é indispensável que seu sub-executável seja pequeno !!


Massuda
   - 28 mar 2006

Minha observação foi feita num tópico sobre como saber onde uma exceção foi gerada. Como foi explicado, o compactador irá mudar os endereços do programa, de forma que qualquer infomação gerada durante a compilação não é mais válida durante a execução.

Geralmente o programa resultante da compactação funciona OK, mas não confie nisso, sempre teste o programa resultante.

O que o Weber comentou é verdade... não há ganho de velocidade, muito pelo contrário, aumenta o tempo de carga do programa (ele precisa ser descompactado primeiro) e aumenta o consumo de memória (a descompactação é feita em memória).

Com relação a atualizações, pessoal que trabalha com Delphi costuma gostar de ter um único executável grande ao invés de ter um executável pequeno com DLLs... nesse cenário, a única forma de diminuir o tamanho das atualizações é usar uma ferramenta de patch, mas não conheço nenhuma ferramenta desse tipo que seja gratuita ou barata.


Lnunes
   - 28 mar 2006

Obrigado a todos pela ajuda.


Adriano Santos
   - 28 mar 2006

Sem querer reabrir o tópico, no meu caso uso apenas para diminuir o tamanho do executável. Nem foi pensando em performance.