UPX
| 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 | 5.0.2 (20. července 2025) |
| 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. | |
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.
Komprese
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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)
Podporované formáty
[editovat | editovat zdroj]- ARM/pe
- atari/tos
- *BSD/i386
- djgpp2/coff
- dos/com
- dos/exe
- dos/sys
- linux/i386 a.out
- linux/ELF on i386, x86-64, ARM, powerpc
- linux/kernel on i386, x86-64 and ARM
- mach-o/ppc32, mach-o/i386
- rtm32/pe
- tmt/adam
- ps1/exe
- watcom/le
- win32/pe (kromě .NET platformy)
- win64/pe (EXPERIMENTAL ONLY)