UPX Ultimate Packer eXecutablesille | |
---|---|
Tyyppi | Pakkaa suoritettavat tiedostot |
Kehittäjä | Markus FXJ Oberhumer [d] |
Sisään kirjoitettu | C++ , Assembler |
Käyttöjärjestelmä | Microsoft Windows , Linux , MacOS , DOS , Atari |
Ensimmäinen painos | 26. toukokuuta 1998 |
Laitteistoalusta | x86 , MIPS , x86_64 , PowerPC ja Motorola 68000 |
uusin versio | 3,96 (23. tammikuuta 2020) |
Lisenssi | GNU GPL |
Verkkosivusto | upx.github.io |
UPX (The Ultimate Packer for eXecutables) on suoritettava pakkaaja , joka tukee useita eri alustoja ja tiedostomuotoja . Se on ilmainen ja avoimen lähdekoodin ohjelmisto , jolla on GNU GPL :n käyttöoikeus .
Pakattu suoritettava tiedosto koostuu purkaus-/alustusmoduulista ja tietolohkosta, joka sisältää pakatun lähdetiedoston . Käynnistettäessä purkausmoduuli varaa muistin ja purkaa tietolohkon sisällön siihen. Joillakin alustoilla pakkauksen purkaminen muistiin ei ole mahdollista, tässä tapauksessa käytetään purkamista väliaikaiseen tiedostoon .
Suoritettavan tiedoston pakkaamisen avulla voit vähentää ohjelmiston viemää tilaa (mikä voi olla kriittistä, kun siirto tapahtuu verkkojen kautta tai ohjelmisto julkaistaan rajoitetun kapasiteetin tietovälineillä).
Muistisegmenttien käyttö (Windows-käyttöjärjestelmissä ) estää käyttöjärjestelmää vapauttamasta suoritettavan koodin segmenttejä ilman, että sen sisältöä jätetään sivutiedostoon ( mikä itse asiassa lisää ohjelman RAM-muistia). Jotkut ohjelmat eivät voi toimia pakatuissa muodossa, koska ne käyttävät vain vähän dokumentoituja (tai dokumentoimattomia) käyttöjärjestelmän ominaisuuksia työskennelläkseen suoritettavien tiedostojen kanssa. Jos paketti puretaan väliaikaiseen tiedostoon ( UNIX-tyyppiset järjestelmät ), ohjelma menettää kyvyn käyttää argv[0]:a, suid-bitin tila jätetään huomiotta.
Merkittävin ja kiistaton etu on pakattujen tiedostojen lukemisen ja käynnistämisen kiihtyvyys tallennusvälineiltä sekä ylimääräisen vapaan tilan vapauttaminen ulkoisille asemille. Tähän mennessä kaikki ulkoiset tallennusvälineet ovat edelleen nykyaikaisten tietokonejärjestelmien hitaimpia solmuja, jotka "hidastavat" koko järjestelmän nopeutta, kuten laskentatekniikan alkuaikoina. Siksi on mahdotonta olla huomaamatta vaikutusta, joka syntyy käytettäessä järjestelmän pakkaajia suoritettaville tiedostoille, kuten UPX. Tietojenkäsittelyjärjestelmä käyttää paljon vähemmän aikaa RAM-muistissa olevan pakatun tiedoston lukemiseen ja purkamiseen kuin vain saman pakkaamattoman tiedoston lukemiseen (ulkoiselta asemalta luettaessa toimintoon käytetty aika lasketaan millisekunteina ja RAM-muistissa olevien tietojen käsittelyyn käytetty aika mikro- ja nanosekuntia).
UPX käyttää häviötöntä pakkausalgoritmia nimeltä UCL ( NRV ( Not Really Vanished ) -algoritmin ilmainen toteutus ) [1] .
UCL-dekompressori on tarpeeksi yksinkertainen toteuttaakseen muutamassa sadassa tavussa, eikä se vaadi ylimääräistä muistia toimiakseen.
Seuraava merkittävä UPX-versio (3.0) käyttää myös LZMA-algoritmia 32-bittisillä alustoilla.
WinRAR : n varhaisissa versioissa SFX - moduulit pakattiin UPX:llä.
Arkistaattorit ja kompressorit | |
---|---|
avoin ja ilmainen |
|
Vapaa | |
kaupallinen | |
Komentorivi |