Logo Hardware.com.br
Equipe GdH
Equipe GdH Geek Moderador
3.5K Mensagens 82 Curtidas

Dica: Comprimindo executáveis com o UPX

#1 Por Equipe GdH 03/10/2007 - 13:28
[03/10] :. Dica: Comprimindo executáveis com o UPX: Esta dica interessa a programadores em geral, seja Windows ou Linux, ou a redistribuidores de aplicações personalizadas... Você sabia que é possível tornar seus programas bem menores, sem muito trabalho? Por Marcos Elias Picão

https://www.hardware.com.br/dicas/comprimindo-executaveis-upx.html

Comente aqui!
emtudo
emtudo Super Participante Registrado
851 Mensagens 4 Curtidas
#3 Por emtudo
03/10/2007 - 16:15
Dica muito boa!

eu não sabia que podia ser descompactado na verdade eu nem sabia que era uma compactacao, eu achava que o programa removia bibliotecas desnecessarias, eu tentei alterar muitos com hexa decimal depois de gerar um arquivo compactado (mas eu usava outro compactador). mas eram tentativas inuteis, nem editor hexadecimal nem resource code.

Para falar a verdade desde 1999 que trabalho com informatica e nunca entrou na minha cabeca a logica de "compactacao de arquivos"

alguem ai tem um link que explica com mais detalhe esta logica?
desde ja grato!
----->HENRIQUE<-----
Linux User #444017 - Linux Machine #350904
Ubuntu 10.04 - Pentium Dual-COre E5400 2.7Ghz - 2hdx500GB - 2x2GiB RAM - GeForce 9400 GT 1GiB compiz
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#4 Por Fergo
03/10/2007 - 16:36
Existem diversos tipos de compressão, métodos, teorias, com e sem perda de dados (mp3 e zip por exemplo, respectivamente). Você pode dar uma olhada no artigo da Wikipedia que fala sobre compressão de arquivos:
http://en.wikipedia.org/wiki/File_compression
(o artigo em inglês é bem mais completo, mas pode acessar a versão em português através do menu na esquerda do Wikipedia).

Para o caso de compressão de executável, basicamente o que ocorre é que os packers adicionam mais uma seção no EXE (no upx, ela se chama .upx). Dentro dessa sessão há um pequeno código conhecido como "loader", que tem a função de descomprimir os dados presentes no arquivo .exe, já que a compressão torna o aplicativo inválido, pois os dados foram todos embaralhados e comprimidos. A única função do loader é buscar pelos dados e descomprimí-los, jogando o resultado na memória e criando um processo do Windows (WriteProcessMemory()), que será o aplicativo descomprimido pronto para uso smile.png

[]s
Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
emtudo
emtudo Super Participante Registrado
851 Mensagens 4 Curtidas
#5 Por emtudo
03/10/2007 - 17:08
Fergo disse:
Existem diversos tipos de compressão, métodos, teorias, com e sem perda de dados (mp3 e zip por exemplo, respectivamente). Você pode dar uma olhada no artigo da Wikipedia que fala sobre compressão de arquivos:
http://en.wikipedia.org/wiki/File_compression
(o artigo em inglês é bem mais completo, mas pode acessar a versão em português através do menu na esquerda do Wikipedia).

Para o caso de compressão de executável, basicamente o que ocorre é que os packers adicionam mais uma seção no EXE (no upx, ela se chama .upx). Dentro dessa sessão há um pequeno código conhecido como "loader", que tem a função de descomprimir os dados presentes no arquivo .exe, já que a compressão torna o aplicativo inválido, pois os dados foram todos embaralhados e comprimidos. A única função do loader é buscar pelos dados e descomprimí-los, jogando o resultado na memória e criando um processo do Windows (WriteProcessMemory()), que será o aplicativo descomprimido pronto para uso smile.png

[]s
Fergo


Estou lendo o artigo (versao portugues), parece esta bem explicado... Mas pensando no caso do upx, acabo que ele carrega quase que a mesma coisa para a memoria, ja que ele tem que carregar um 'loader' para descompactar o arquivo e colocar na memoria... ou seja, ele descompacta o arquivo fica com quase a mesma quantidade na memoria, bom, acho que a unica coisa que nao vai para memoria entao seria o que ele retira, correto?


editado:

É, do jeito que eu pensava o artigo, mas é uma coisa muito misteriosa que nao entra na minha cabeca apenas por um fator:

Eu quando comecei a informatica, eu pegava um arquivo "arquivo.exe" e mandava compactar, ele ficava do mesmo tamanho ou maior, ai eu pegava o arquivo "arquivo.exe" e o "arquivo.txt" e mandava compacatar os dois juntos, ai o arquivo ficava pela metade..., ja fiz isso muitas vezes é isso que nao deixa eu entender o misterio da "compressao e compactacao"
----->HENRIQUE<-----
Linux User #444017 - Linux Machine #350904
Ubuntu 10.04 - Pentium Dual-COre E5400 2.7Ghz - 2hdx500GB - 2x2GiB RAM - GeForce 9400 GT 1GiB compiz
marcoselias
marcoselias Super Participante Registrado
481 Mensagens 38 Curtidas
#6 Por marcoselias
04/10/2007 - 13:33
Uma coisa sobre o licenciamento e a modificação do arquivo final... Eu penso que não seja uma violação de licença, embora os autores desencorajam fazer isso (como modificar o arquivo já comprimido, como citei no texto).

Vejo que não seria considerável violação pelo programa ser aberto e GPL. Seria quase o mesmo que você modificar o código fonte trocando o nome do programa, sem remover os créditos. Sendo GPL, você tem a liberdade de personalizá-lo. Um software livre pode ser modificado de diversas formas, não somente no código fonte... Se o UPX não insere informações de créditos que queira que sejam visíveis para os usuários, digamos que o problema é dele stick_out_tongue.png

O que vocês acham? Não seria errado modificar o arquivo depois de comprimido. Uma também que o conteúdo principal do programa será seu.
veja.png Que tal um novo player? www.mondegoplayer.com
Toca mp3, wma, ogg... E até grava rádios via streaming!
Desktop: Core 2 Quad 2,33 GHz OC @2,8 GHz, Asus P5KPL-AM, 4 GB, 3 HDs (500, 250 e 160 GB), Radeon HD 4870 1 GB, Win7 x64
Servidores: CentOS 5.2
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#8 Por Fergo
04/10/2007 - 14:05
É permitido modificar o UPX, os autores permitem isso (readme), mas é necessário levar em conta as condições da licença GNU/GPL, já que o programa a utiliza.

Emtudo, esse comportamento que você descreveu é bastante estranho, pois a compressão comum (ZIP/RAR, 7Z) independe do tipo do arquivo, apenas do conteúdo do mesmo.

Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
emtudo
emtudo Super Participante Registrado
851 Mensagens 4 Curtidas
#9 Por emtudo
04/10/2007 - 14:45
Fergo disse:
É permitido modificar o UPX, os autores permitem isso (readme), mas é necessário levar em conta as condições da licença GNU/GPL, já que o programa a utiliza.

Emtudo, esse comportamento que você descreveu é bastante estranho, pois a compressão comum (ZIP/RAR, 7Z) independe do tipo do arquivo, apenas do conteúdo do mesmo.

Fergo


se nao me engano eu usava a versao 7 ou 8 do winzip, isso erra quando eu estava no curso basico em 1999, hoje eu nem uso windows, so linux.

mas eu cansei de ver isso... muitas vezes...
as vezes eu queria compactar um programa para caber em um disquete, ai compactava e ele nao cabia no disquete, entao eu juntava com mais um arquivo txt qualquer e compactava os dois juntos, ai cabia no disquete, realmente é estranho, mas depois se tiver oportunidade de fazer alguns testes...

talvez seja ate falha da versao, ou algo assim, nao sei, mas que acontecia acontecia.
----->HENRIQUE<-----
Linux User #444017 - Linux Machine #350904
Ubuntu 10.04 - Pentium Dual-COre E5400 2.7Ghz - 2hdx500GB - 2x2GiB RAM - GeForce 9400 GT 1GiB compiz
marcoselias
marcoselias Super Participante Registrado
481 Mensagens 38 Curtidas
#12 Por marcoselias
13/10/2007 - 18:26
gonelli disse:
estou com problemas no upx. quando eu clico em ok para decompres aparece 'no change'. alguém me pode me explicar por q?


Vc está tentando descompactar um arquivo que realmente foi comprimido pelo UPX?

Outra coisa a verificar é se ele não está aberto ou em uso por algum outro programa...

Caso não seja isso, o arquivo pode ter sido modificado depois de comprimido, ou está corrompido.
veja.png Que tal um novo player? www.mondegoplayer.com
Toca mp3, wma, ogg... E até grava rádios via streaming!
Desktop: Core 2 Quad 2,33 GHz OC @2,8 GHz, Asus P5KPL-AM, 4 GB, 3 HDs (500, 250 e 160 GB), Radeon HD 4870 1 GB, Win7 x64
Servidores: CentOS 5.2
N-ton
N-ton Super Participante Registrado
550 Mensagens 6 Curtidas
#13 Por N-ton
25/04/2008 - 16:37
Equipe GdH disse:
[03/10] :. Dica: Comprimindo executáveis com o UPX: Esta dica interessa a programadores em geral, seja Windows ou Linux, ou a redistribuidores de aplicações personalizadas... Você sabia que é possível tornar seus programas bem menores, sem muito trabalho? Por Marcos Elias Picão

https://www.hardware.com.br/dicas/comprimindo-executaveis-upx.html

Comente aqui!
achei útil a informação passada pelo artigo.
estou interessado porque tenho um problema de espaço dificil
de resolver.por isso vou ficar mais atento a materia.
BionewBie
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal