UPX

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 7.9.2019 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .
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 .

Kuvaus

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 .

Edut ja haitat

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).

Käytetyt algoritmit

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.

Tuetut muodot

Graafiset käyttöliittymät

Windowsille

Käytännön käyttö

WinRAR : n varhaisissa versioissa SFX - moduulit pakattiin UPX:llä.

Muistiinpanot

  1. NRV yleinen tiedonpakkauskirjasto

Linkit