UPX: Zmenšete programy na polovinu

Co takhle zkusit zmenšit spustitelné soubory a dynamické knihovny? Že to nejde? Ale jde! Dnes vám představíme program UPX (Ultimate Packer for eXecutables), který dokáže zmenšit soubory až na polovinu, aniž by jakýmkoli způsobem ovlivnil jejich funkci.
Podíváte-li se podrobněji na obsah pevného disku průměrného počítače, zjistíte, že největší část obvykle zabírají adresáře Windows a Program Files. Není se čemu divit – oba obsahují celou řadu programů, přičemž právě programy patří k největším polykačům volného místa. Chcete-li ušetřit nějaký ten megabajt, můžete například začít odinstalací nepoužívaných aplikací. Po chvilce ale zjistíte, že i když jste z počítače odstranili všechny programy, které již nechcete, stále to ještě není pravé ořechové. Co takhle zkusit zmenšit spustitelné soubory a dynamické knihovny? Že to nejde? Ale jde! Dnes vám představíme program UPX (Ultimate Packer for eXecutables), který dokáže zmenšit soubory až na polovinu, aniž by jakýmkoli způsobem ovlivnil jejich funkci. Jde vlastně o program komprimující spustitelné soubory, který umí zredukovat jejich velikost o 50 až 70 %, čímž lze v konečném efektu ušetřit poměrně výrazné množství místa a v případě, že spouštíte programy ze síťového serveru, můžete tímto krokem dosáhnout i snížení zatížení sítě.

Aplikace existuje ve třech verzích – pro příkazovou řádku Windows, pro 32bitový DOS a pro Linux. Programátory jistě potěší možnost stáhnout si i zdrojový kód.

My jsme podrobili testu první variantu ovládanou z příkazové řádky Windows. O tom, že se nejedná o nějaký horký produkt, svědčí fakt, že program byl ve verzi 1.00 uvolněn až po dvouletém testování, což by mělo být dostatečnou zárukou stability a bezpečnosti.

UPX podporuje celou řadu formátů nejrůznějších vykonatelných souborů, jako jsou aplikace pro Windows 95, 98, 2000 a NT, dynamické knihovny (DLL), DOSové programy a spustitelné soubory operačního systému Linux. Princip fungování takto zkomprimovaného programu je kompresí pouze mírně pozměněn: zatímco nezkomprimovaný soubor se nahraje do paměti, kde se následně spustí, zkomprimovaný se nahraje do paměti, vyvolá se rutina k dekompresi a teprve po rozbalení je program spuštěn. Na současných počítačích nepoznáte prakticky žádný rozdíl mezi spuštěním programu zkomprimovaného pomocí UPX a jeho původní verzí, nicméně na starších strojích bude přece jen citelné zpoždění, během kterého je program rozbalován do paměti. Máte-li ale na stole alespoň Celerona na 300 MHz, můžete si své spustitelné soubory bez obav zkomprimovat.

Z dalších vlastností jmenujme:

  • vynikající kompresní poměr, který dosahuje ve většině případů lepších výsledků než například ZIP či GZIP.
  • vysoká rychlost rozbalování zkomprimovaných souborů (podle autora na starém Pentiu 133 dosahuje hodnoty kolem 10 MB za sekundu)
  • v případě, že byste nebyli s funkcí zkomprimovaného souboru spokojeni, není problém jej uvést do původního stavu. UPX si ukládá do souboru kontrolní součty před kompresí a po ní, takže máte jistotu, že původní soubor lze kdykoli bezpečně obnovit.

    Ovládání programu

    Komprimace Pro základní komprimaci vystačíte s velmi jednoduchou syntaxí:

    Příklad: upx program.exe

    Kromě toho lze určit i stupeň komprese, který je přímo úměrný času, jenž budete ke zkomprimování souboru potřebovat:

  • 1, 2 a 3 nabízejí velmi rychlou kompresi za cenu horšího kompresního poměru
  • 4, 5 a 6 mají optimální poměr komprese a potřebného času
  • 7 je implicitní stupeň
  • 8 a 9 nabízí nejlepší stupeň, ovšem vyžaduje poměrně značné množství času
Příklad: upx -8 program.exe

Je nutné upozornit na skutečnost, že volba kompresního poměru je velice důležitá. Autor sám provedl pokus, během něhož se snažil zkomprimovat jeden a tentýž soubor velký 5 MB, přičemž při použití atributu -7 dosáhl pouze o 65 KB větší výsledné velikosti než při použití atributu -9.

Dekomprimace K dekomprimaci souborů použijte přepínač -d

Příklad: upx -d program.exe

Test Testuje se integrita zkomprimovaného nebo dekomprimovaného souboru, čímž můžete například zjistit, zda je možné ten který soubor bezpečně dekomprimovat. Není testován celý soubor, ale pouze část, která bude dekomprimována během spuštění programu.

Příklad: upx -t program.exe

Výpis Díky tomuto přepínači se můžete dozvědět informace o zkomprimovaném souboru, jako je například původní a současná velikost a kompresní poměr.

Příklad: upx -l program.exe

K dispozici je celá řada dalších přepínačů, které jsou ale pro funkci programu méně důležité. Jejich kompletní výpis získáte příkazem upx --help.

Test

Pro test komprese jsme použili celkem pět různých programů, přičemž jsme sledovali původní velikost, velikost po zkomprimování a dobu nutnou pro provedení komprese. Ve všech případech jsme použili základní nastavení programu, tedy implicitní stupeň 7.
Popis Název souboru Původní velikost Velikost po kompresi Kompresní poměr Čas
Dynamická knihovna MS Office 97 Mso97.dll 3'780'608 2'027'448 0,54 87 sekund
MS Word 97 winword.exe 5'328'896 2'830'336 0,53 156 sekund
Kalkulačka calc.exe 94'208 31'232 0,33 méně než 1 sekunda
Příkazová řádka command.com 94'696 34'855 0,37 méně než 1 sekunda
Adobe PhotoShop 5.0 CZ Photoshp.exe 5'730'816 2'136'064 0,37 133 sekund
U velkých souborů je tedy průměrná rychlost komprese zhruba kolem 40 KB/s, přičemž průměrný kompresní poměr v našem minitestu činil 0,43, výsledné soubory tedy byly o téměř 60 % menší než jejich původní verze. Problém nastal pouze v případě zkomprimovaného souboru command.com, který se odmítal spustit, ostatní programy (ve zbývajících případech se jednalo o standardní Win32 PE EXE soubory) fungovaly zcela bez chyby.

Velice potěšující je skutečnost, že UPX je šířen úplně zadarmo, což je výrazný rozdíl od jiných podobných produktů nabízejících stejné funkce.

Zajímavé jsou rovněž plány do budoucna: autoři chtějí podporovat komprimaci programů pod operačními systémy přenosných zařízení, jako jsou PalmPiloty, kde je důležitý každý ušetřený kilobajt. Stejně tak se plánují i varianty pro další unixové klony a operační systémy, jako je FreeBSD, OpenBSD, NetBSD, Solaris, BeOS a další.

Licence: Freeware Webová stránka: http://upx.tsx.org/ Download, velikost: 113 KB

Diskuze (14) Další článek: Seznam a Atlas se hádají, kdo z nich je větší

Témata článku: Windows, Důležitý soubor, Původní funkce, Spustitelný soubor, Celá knihovna, Největší rozdíl


Určitě si přečtěte

Kde se bere elektřina v zásuvce? Poznejte 10 tajemství venkovních stožárů s dráty

Kde se bere elektřina v zásuvce? Poznejte 10 tajemství venkovních stožárů s dráty

Elektřina se vyrábí v elektrárnách, ale do zásuvek v našich domovech to pak má ještě hodně daleko. Dnes se na tuhle dlouhou cestu podíváme.

David Polesný | 82

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

** Model raketoplánu Columbia od českého konstruktéra umí i létat ** Obdivuhodný model si vzal 1600 hodin práce ** Podívejte se na fotografie ze stavby a prvního letu

Karel Jeřábek | 20

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

** Vyzkoušeli jsme rychlé externí SSD Samsung T5 ** Externí SSD je lepší než flešky i velké plotnové disky, většímu rozšíření doposud bránila především cena ** Samsung T5 zvládne i chytré šifrování a připojení k mobilu

David Polesný | 27

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

** Srpen byl třetí nejteplejší za posledních více než sto let ** Bude to ale daleko horší, jak ukazuje aplikace NYT ** V Praze vzroste počet horkých dní na čtyřnásobek

Karel Kilián | 21

Porno insider: Jak Greg Lansky mění internet pro dospělé

Porno insider: Jak Greg Lansky mění internet pro dospělé

** Erotický obsah generoval ohromné peníze, pak ale přišel internet... ** Pornografie dostupná všude a zdarma uvedla tvůrce do krize ** Někteří ale dokázali potenciál internetu využít i v tomto oboru

Jan Dudek | 12


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku