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 | 4.2.4 (9. května 2024) |
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)