UPX

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 7 september 2019; kontroller kräver 2 redigeringar .
UPX
den ultimata packaren för körbara filer
Sorts Packa körbara filer
Utvecklaren Markus FXJ Oberhumer [d]
Skrivet i C++ , Assembler
Operativ system Microsoft Windows , Linux , MacOS , DOS , Atari
Första upplagan 26 maj 1998
Hårdvaruplattform x86 , MIPS , x86_64 , PowerPC och Motorola 68000
senaste versionen 3,96 (23 januari 2020)
Licens GNU GPL
Hemsida upx.github.io

UPX (the Ultimate Packer for eXecutables) är en körbar packer som stöder flera olika plattformar och filformat . Det är gratis och öppen källkod licensierad under GNU GPL .

Beskrivning

En komprimerad körbar fil består av en uppacknings-/initieringsmodul och ett datablock som innehåller den komprimerade källfilen . När uppackningsmodulen startas allokerar uppackningsmodulen minne och packar upp innehållet i datablocket i det. För vissa plattformar är det inte möjligt att packa upp i minnet, i det här fallet används uppackning till en temporär fil .

Fördelar och nackdelar

Genom att paketera en körbar fil kan du minska det utrymme som upptas av programvaran (vilket kan vara avgörande vid överföring över nätverk eller frisläppande av programvara på media med begränsad kapacitet).

Användningen av minnessegment (på Windows-operativsystem ) förhindrar operativsystemet från att släppa segment av körbar kod utan att dumpa innehållet i sidfilen (vilket faktiskt ökar programmets RAM-krav). Vissa program kan inte fungera i komprimerad form, eftersom de använder få dokumenterade (eller odokumenterade) funktioner i operativsystemet för att arbeta med körbara filer. Vid uppackning till en temporär fil ( UNIX-liknande system ), förlorar programmet förmågan att använda argv[0], statusen för suid-biten ignoreras.

Den mest betydande och obestridliga fördelen är accelerationen av att läsa och starta komprimerade filer från lagringsmedia, samt frigöra ytterligare ledigt utrymme på externa enheter. Hittills är alla externa lagringsmedier fortfarande de långsammaste noderna i moderna datorsystem, och "sänker" hastigheten på systemet som helhet, som i de första dagarna av datorteknik. Därför är det omöjligt att inte uppskatta effekten som uppstår när man använder systempaketerare för körbara filer, såsom UPX. Datorsystemet spenderar mycket mindre tid på att läsa och dekomprimera en komprimerad fil i RAM-minnet än att bara läsa samma okomprimerade fil (när man läser från en extern enhet, beräknas tiden som spenderas på operationen i millisekunder, och tiden som går åt för att bearbeta data i RAM är mikro- och nanosekunder).

Algoritmer som används

UPX använder en förlustfri komprimeringsalgoritm som kallas UCL (en gratis implementering av NRV ( Not Really Vanished )-algoritmen) [1] .  

UCL-dekomprimeraren är enkel nog att implementeras på några hundra byte och kräver inget extra minne för att köras.

Nästa betydande version av UPX (3.0) använder också LZMA-algoritmen på 32-bitars plattformar.

Format som stöds

Grafiska gränssnitt

För Windows

Praktisk användning

I tidiga versioner av WinRAR var SFX -moduler packade med UPX.

Anteckningar

  1. NRV generiskt datakomprimeringsbibliotek

Länkar