Compression de données et de logiciels pour systèmes de 64 bits en étapes faciles

Qu’est-ce que la compression?
La compression est le processus de conversion consistant à réduire la taille d’un fichier en codant ses informations de données, de manière à ce que les données puissent être stockées ou transmises plus efficacement. Cette compression peut être obtenue sur les données, mais aussi sur un type particulier de données: le fichier binaire. Ce fichier binaire peut être sous la forme d’un fichier exécutable ou d’une bibliothèque de liens dynamiques (DLL) ou de tout autre type de fichiers binaires. Quoi qu’il en soit, le résultat est une réduction du nombre de bits et d’octets, ce qui entraîne une taille de fichier plus petite. La taille des données sous forme comprimée par rapport à sa taille d’origine est connue sous le nom de taux de compression. Les ratios peuvent différer grandement en fonction de l’algorithme utilisé et selon la nature du fichier à compresser.

Pourquoi la compression?
Il arrive encore trop fréquent de manquer d’espace disque, même si les ordinateurs modernes ont tendance à être équipés de disques durs relativement importants. Un problème similaire survient lors de l’envoi ou de la réception de fichiers sur Internet. Il peut prendre beaucoup de temps pour envoyer un fichier important et même extrêmement long sur une connexion lente. Alors, que peut-on faire pour remédier? La réponse consiste à comprimer les fichiers afin qu’ils occupent moins de temps et d’envoi.

Comment utiliser la compression?
L’une des façons est d’utiliser des programmes créés spécifiquement pour compresser et décompresser des fichiers. Une fois compressés, les fichiers ne peuvent être utilisés avant qu’ils ne soient décompressés à nouveau. Ainsi, la compression est bonne pour l’archivage ou pour l’envoi par courrier électronique. Un exemple bien connu d’une technologie de compression est ZIP, une norme commune pour la compression de fichiers de données. Pour les fichiers binaires, cette façon n’est pas possible car l’exécutable compressé perdrait toutes les capacités de démarrage car il doit être autonome (voir ci-dessous comment cela est résolu dans les binaires). La compression est également utilisée dans de nombreux cas sans que l’utilisateur le réalise. Un modem utilise une forme de compression lorsqu’il envoie et reçoit des données. Un autre exemple est un graphique au format JPEG.

Comment fonctionne la compression?
Lorsque vous avez un fichier contenant du texte, il peut y avoir des mots répétitifs, des combinaisons de mots et des phrases qui utilisent beaucoup d’espace de stockage pour être productif. Il en va de même pour les fichiers binaires avec des bits et des octets répétitifs. Il peut y avoir des médias tels que des images dont l’information de données occupe beaucoup plus d’espace que nécessaire. Toutefois, le document ou le fichier peut être compressé pour réduire cette inefficacité par voie électronique.

Comment obtenir une compression?
La compression se fait en utilisant des algorithmes de compression (formules) qui réorganisent et réorganisent les informations de données afin de pouvoir être stockées plus économiquement. En codant l’information, les données peuvent être stockées en utilisant moins de bits. Cela se fait en utilisant un programme de compression / décompression qui modifie temporairement la structure des données. La compression réduit l’information en utilisant des méthodes différentes et plus efficaces pour représenter l’information. Les méthodes peuvent inclure simplement la suppression d’espaces, en utilisant deux caractères pour représenter une chaîne de caractères répétés ou en remplaçant des séquences de bits plus grandes par des caractères plus petits. Certains algorithmes de compression vont jusqu’à supprimer complètement les informations pour obtenir une taille de fichier plus petite. Selon l’algorithme utilisé, les fichiers peuvent être réduits de manière adéquate par rapport à leur taille d’origine.

Existe-t-il des systèmes différents?
Si l’inverse de la compression, la décompression, produit une réplique exacte des données d’origine, alors la compression est sans perte. L’autre type, la compression à perte, généralement appliquée aux données d’image, ne permet pas la reproduction d’une réplique exacte de l’image d’origine, mais présente un taux de compression plus élevé. Ainsi, la compression à perte permet seulement une approximation de l’original à régénérer.

Qu’est-ce qu’une compression à perte?
La compression percée réduit les fichiers en éliminant les bits de données qui, espérons-le, ne sont pas nécessaires. MP3 est un tel système, il s’appuie sur la façon dont le cerveau interprète l’audio et utilise divers astuces pour produire quelque chose qui ressemble presque à la même chose, mais manque en réalité jusqu’à 90% des données. Un autre système à perte est JPG. Il est conçu pour fournir une compression élevée pour les images. Par exemple, dans une image contenant un paysage avec un ciel bleu, toutes les nuances légèrement différentes de vert et de bleu sont éliminées. La nature essentielle des données n’est pas perdue car les couleurs de base sont encore présentes. Les grandes parties de l’image seront également colorées, peut-être même des lignes ou des surfaces entières, mais l’image restera la même pour l’œil humain.

Qu’est-ce que la compression sans perte?
La compression sans perte est un type de compression capable de réduire la taille des fichiers sans perte d’informations. Le fichier original peut être recréé exactement dans le même état lorsqu’il est décompressé. Pour ce faire, les algorithmes créent des points de référence pour les motifs, les stockent dans une table et envoient le tableau avec le fichier encodé maintenant plus petit. Lorsqu’il est décompressé, le fichier est redistribué en remplaçant les points référencés par les informations originales.

Quand utiliser une compression sans perte?
La compression sans perte est idéale pour les documents contenant du texte et des données numériques où la perte d’information ne peut pas être tolérée. La compression ZIP, par exemple, est une compression sans perte qui détecte les motifs et les remplace avec un seul caractère (plus un indicateur). Cela repose sur le fait que la plupart des fichiers contiennent de grandes quantités d’espace ou des données répétitives. À titre d’exemple, remarquez que dans ce texte que vous lisez maintenant, le mot compression apparaît encore et encore, chacun prenant 11 octets de stockage (un pour chaque lettre). Un système de compression remarque ceci et après la première occurrence, plutôt que de stocker le mot réel, il stocke un indicateur d’un octet pour indiquer qu’il s’agit d’un mot répétitif plus un octet pour indiquer quel mot il est. Il en résulte que chaque occurrence de compression nécessite actuellement 2 octets et pas 11, une économie de 9 octets et plus de 80% de l’espace pour ce mot. Si vous répétez ce processus pour les 256 mots les plus courants, cela peut faire toute une différence dans la taille du fichier. Lors de la décompressation du fichier, le programme de décompression trouve ces codes pour les mots répétés et rétablit les mots complets à leur place, ce qui permet de restaurer le document à sa taille et son contenu d’origine.

Quels sont les résultats?
Le succès de la compression des données dépend en grande partie des données elles-mêmes car certains types de données sont intrinsèquement plus compressibles que d’autres. Généralement, certains éléments dans les données sont plus communs que d’autres et la plupart des algorithmes de compression exploitent cette propriété, appelée redondance. Plus la redondance est grande dans les données, plus la compression des données sera couronnée de succès. À cet égard, la vidéo numérique a une redondance élevée qui la rend très adaptée à la compression.

Un périphérique (logiciel ou matériel) qui comprime des données est souvent connu sous le nom d’un codeur ou d’un codeur, tandis qu’un périphérique qui décompresse des données est connu comme un décodeur. Un dispositif qui agit à la fois comme codeur et décodeur est connu sous le nom de codec. Un grand nombre de techniques de compression ont été développées et certaines techniques sans perte peuvent être appliquées à n’importe quel type de données. Ces dernières années, le développement de techniques à perte, en particulier pour les données d’image, a beaucoup contribué à la réalisation d’applications vidéo numériques. D’accord, pour la compression en général, mais qu’en est-il de la compression sur les fichiers binaires?

Compression du logiciel
Comme mentionné précédemment, un exécutable compressé (ou DLL) doit être autonome. Par conséquent, il doit s’agir d’une archive auto-extractible où les données compressées sont conditionnées avec le code de décompression dans un fichier exécutable. De cette façon, il n’existe aucun programme distinct nécessaire pour exécuter un fichier exécutable compressé. Ce code de décompression qui est ajouté aux données compressées est souvent appelé talon de décompression. L’exécution d’un exécutable compressé signifie essentiellement que le talon de décompression décompose le code exécutable d’origine avant de passer le contrôle au binaire original recomposé. L’effet est le même que si l’exécutable original avait été exécuté. Pour l’utilisateur occasionnel, les exécutables compressés et non compressés sont indiscernables.

Qu’est-ce que l’emballage?
L’acte de compresser un fichier exécutable ou DLL est souvent appelé emballage, un nom typique pour un programme de compression exécutable devient un packer. Les exécutables les plus chargés se décompressent directement dans la mémoire et ne nécessitent aucun espace de système de fichiers externe pour démarrer. Toutefois, certains talons de décompression sont connus pour écrire l’exécutable non compressé dans le système de fichiers afin de le démarrer.

Pourquoi utiliser les packers?
Les distributeurs de logiciels utilisent la compression exécutable pour diverses raisons, principalement pour réduire les exigences de stockage du logiciel. Les compresseurs exécutables sont spécifiquement conçus pour compresser le code exécutable, c’est pourquoi ils atteignent souvent de meilleurs ratios de compression que les programmes standard de compression de données. La compression logicielle permet aux distributeurs de rester dans les limites de leurs supports de distribution choisis (CD, DVD, …), ou de réduire le temps et la largeur de bande que les clients ont besoin d’accéder au logiciel distribué via internet. Il existe également une autre raison de la compression: la compression exécutable est également utilisée fréquemment pour dissuader l’ingénierie inverse ou pour obscurcir le contenu de l’exécutable par des méthodes de compression et / ou un cryptage ajouté. Malware est connu pour être compressé dans de nombreux cas, pour cacher leur présence à partir de scanners antivirus. La compression exécutable peut être utilisée pour empêcher le désassemblage direct, les littératures de chaînes de masques et modifier les signatures. Cependant, la compression exécutable n’élimine pas les chances d’une ingénierie inverse, elle ne peut que ralentir le processus. En général, la compression uniquement est totalement insuffisante pour contourner les fissures, beaucoup plus fiables sont des protecteurs à cet effet.

L’exécutable compressé est-il plus lent?
Un logiciel compressé nécessite moins d’espace de stockage dans le système de fichiers, ce qui prend moins de temps pour mapper ses données du système de fichiers en mémoire. D’autre part, il faut un certain temps pour décompresser les données avant que l’exécution ne commence. Cependant, la vitesse de divers supports de stockage n’a pas suivi la vitesse moyenne du processeur, de sorte que le stockage est très souvent le goulot d’étranglement. Ainsi, l’exécutable compressé sera chargé plus rapidement sur la plupart des systèmes communs. C’est une sorte de théorie cependant que sur les ordinateurs de bureau modernes, ce qui est rarement perceptible à moins que l’exécutable ne soit exceptionnellement grand, donc la vitesse de chargement n’est pas une raison principale en faveur ou contre la compression d’un exécutable. La compression logicielle permet de stocker plus de logiciels dans la même quantité d’espace, sans avoir à déplacer manuellement le fichier archivé chaque fois que l’utilisateur souhaite utiliser le logiciel.

Et pour les systèmes 64 bits (x64)?
La compression de données pour 32 bits ou 64 bits est évidemment exactement la même pour les deux systèmes. En outre, la compression pour les exécutables de 32 et 64 bits entraîne des rapports comparables. En fait, tout ce qui est dit en général est également vrai spécifiquement pour le logiciel 64 bits. Bien que les tailles entre les logiciels de 32 bits et 64 bits pour les exécutables originaux diffèrent légèrement en faveur du système 32 bits, il existe souvent un meilleur rapport pour la compression du logiciel 64 bits car il existe plus de même modèle dans ce logiciel (seulement le même Nombre de bits et d’octets existent pour les deux). Cela rend encore plus conseillé de comprimer un logiciel 64 bits pour réduire l’espace et le temps par rapport aux logiciels 32 bits.

Jose Sogiros est un développeur avec 5 ans d’expérience dans le domaine de la compression de logiciels, mais il est également un développeur créant des outils de développement intelligents, novateurs et conviviaux pour aider à produire efficacement un meilleur logiciel de protection de programme. Continuez à lire avec la compression de logiciel 64 bits [http://www.larp64.com/lARP64Free.html] pour une étude connexe x64 sur le sujet ou pour des informations spécifiques et plus approfondies sur la protection des logiciels 64 bits [http: //www.larp64 .com / protection.html].

Next PagePrevious Page
Tags
Similar Posts