For faster navigation, this Iframe is preloading the Wikiwand page for UPX.

UPX

UPX

Description de l'image UPX screenshot.png.
Informations
Développé par Markus F.X.J. Oberhumer (d)Voir et modifier les données sur Wikidata
Dernière version 4.2.4 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/upx/upxVoir et modifier les données sur Wikidata
Écrit en C++ et assembleurVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, GNU/Linux, macOS, The Operating System, Linux, DOS et AtariVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Compression de données
Licence GNU GPL
Site web upx.github.io

UPX (sigle de l'anglais Ultimate Packer for eXecutables) est un logiciel libre permettant de compresser des fichiers exécutables.

Le programme utilise la technologie de compression sans perte UCL, de sorte qu'une fois lancé, il se décompresse lui-même. La version 3.00 a introduit le support de la compression LZMA.

C’est un programme gratuit, distribué sous licence GNU GPL, et l’un des plus utilisés de sa catégorie.

Compactage d’exécutables

[modifier | modifier le code]

Ce processus permet de compresser un fichier exécutable, capable quand il est lancé de se décompresser lui-même. Il n’y a pour l’utilisateur aucune différence entre le programme compressé et l’original.

Cette technologie permet de se passer, pour les programmes, de méthodes plus générales mais nécessitant l’utilisation de bibliothèques et de logiciels spécialisés et/ou payants, comme gzip, zip ou bzip2.

Sur des programmes imposants, la technologie de compactage permet de réduire le temps de téléchargement si le programme est diffusé via Internet.

UPX lui-même permet la décompression d'un exécutable compressé.

La technologie UCL

[modifier | modifier le code]

La technologie UCL est une bibliothèque de compression spécialisée, dérivée de la technologie propriétaire NRV (Not Really Vanished). La bibliothèque UCL a été écrite en ANSI C.

Les programmes compressés avec UPX sont dotés, dans l’amorce (stub) de l’exécutable, d’une partie du code de la bibliothèque UCL, permettant au programme de se décompresser. Cette amorce tient sur moins de 200 octets.

UPX utilisait autrefois la compression LZO (Lempel-Ziv-Oberhumer, le logiciel s’appelait alors lzop), dérivée de la méthode LZ (Lempel-Ziv) et de la méthode LZW (Lempel-Ziv-Welch), moins performante, dont les concepteurs se sont inspirés pour adapter NRV. UCL est disponible sous licence GPL et licence UPX.

Formats supportés

[modifier | modifier le code]

Limitations techniques

[modifier | modifier le code]

Les programmes compressés avec UPX peuvent s’extraire dans un fichier temporaire, ce qui fait que :

  • les permissions spéciales, telles que le suid, sont ignorées ;
  • les arguments passés aux programmes peuvent être altérés ;
  • les applications ne pourront pas partager des segments CPU communs.

Autrement et plus généralement, ils se chargent en mémoire (in-place) :

  • Les ordinateurs ne possédant que peu de mémoire vive (RAM) peuvent être ralentis ;
  • Certains programmes qui intègrent des composants de bas niveau peuvent être moins stables (principalement sur des VM) ;

Étant donné la modification du code effectuée par UPX :

  • On ne peut pas identifier facilement les dépendances d’un programme compressé ;
  • Les applications compressées peuvent démarrer plus lentement (si le processeur est lent) ou plus rapidement (exécution depuis un partage réseau, une clef USB, un fichier du disque dur non caché…) ;

Les programmes compressés par UPX sont tous facilement décompressés par les logiciels antivirus, bien que de faux-positifs d'analyse peuvent être retournés parfois, du fait que certains antivirus considèrent les exécutables compressés comme potentiellement malicieux, car vus comme une tentative de "cacher" du code binaire directement lisible.

Certains virus sont compressés avec des versions modifiées d’UPX ce qui complique légèrement la tâche des logiciels de protection.

Notes et références

[modifier | modifier le code]
  1. « Release 4.2.4 », (consulté le )

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]
{{bottomLinkPreText}} {{bottomLinkText}}
UPX
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?