UPX
UPX (the Ultimate Packer for eXecutables – univerzální kompresor spustitelných souborů) je open source software, který slouží ke kompresi spustitelných souborů. UPX podporuje různé formáty souborů na různých operačních systémech.
Vývojář | Markus F.X.J. Oberhumer, László Molnár a John F. Reiser |
---|---|
První vydání | 26. května 1998 |
Aktuální verze | 3.96 (22. ledna 2020) |
Operační systém | Windows, Linux, macOS, DOS, Atari |
Platforma | x86 Architektura MIPS x86_64 PowerPC Motorola 68000 |
Vyvíjeno v | C++, jazyk symbolických adres |
Typ softwaru | Komprese spustitelných souborů |
Licence | GPL |
Web | upx.sf.net |
Některá data mohou pocházet z datové položky. |
Komprese
UPX používá kompresní algoritmus UCL, což je open source implementace podobná uzavřenému NRV algoritmu (Not Really Vanished – Ne úplně ztracený).
UCL bylo navrženo tak, že dekomprese může být implementována jenom v několika stovkách řádek kódu. UCL nepotřebuje alokovat mnoho paměti pro dekompresi.
UPX může na většině platforem používat LZMA kompresi (od verze 2.90 beta). Avšak tato možnost není u 16bitových výchozí, kvůli pomalé dekompresi na starších počítačích (lze vynutit přidáním --lzma
do příkazu)
Dekomprese
UPX podporuje dva způsoby dekomprese:
- Přímo do paměti (použité na většině platforem)
- Do dočasného souboru (použité na zbylých platformách)