Qu'est-ce que le format de fichier AR ?
Le format d'archive .ar remonte à la Version 1 d'Unix (1971), créé aux Bell Labs comme l'archiveur Unix original. Un fichier .ar concatène plusieurs fichiers membres, chacun précédé d'un en-tête ASCII fixe de 60 octets enregistrant le nom du membre, l'heure de modification, les permissions et la taille en octets. Chaque archive commence par la chaîne magique de 8 octets !<arch> suivie d'un simple saut de ligne (0x0A).
Le format stocke les membres sans compression par défaut. Deux variantes principales existent :
- La variante BSD (utilisée sur macOS) étend les noms de fichiers longs en ligne après chaque en-tête de membre.
- La variante System V/GNU (utilisée sur Linux) stocke les noms longs dans un membre spécial
//et ajoute en préfixe une entrée d'index de symboles/pour une recherche efficace lors de l'édition de liens.
Aujourd'hui, le format .ar est le plus souvent rencontré sous forme de bibliothèques statiques .a sur Linux et macOS, où l'outil ar de GNU binutils est l'implémentation standard. Les paquets Debian .deb sont également des archives ar - renommer un .deb et l'extraire révèle les membres internes control.tar et data.tar. Commandes ar courantes : ar rcs libfoo.a *.o crée une archive, ar t archive.ar liste les membres, et ar x archive.ar les extrait.
Sécurité et sûreté
RISQUE : LOWLes archives AR elles-mêmes sont des conteneurs sans sémantique exécutable - elles ne peuvent pas exécuter de code automatiquement. Cependant, les membres à l'intérieur peuvent être des fichiers objets compilés ou des exécutables qui pourraient être malveillants. Lors de l'extraction d'une archive ar provenant d'une source non fiable, inspectez les fichiers extraits avant de les exécuter. Les bibliothèques statiques liées à vos binaires font partie de ces binaires ; une bibliothèque statique altérée est un vecteur d'attaque de la chaîne d'approvisionnement (par exemple, des archives de chaîne d'outils compromises). Vérifiez toujours les sommes de contrôle lors du téléchargement d'archives de chaînes d'outils contenant des bibliothèques .a/.ar.
Détails du format
en bref- Paquet Debian (.deb) - Un fichier .deb est une archive ar contenant les membres control.tar.* et data.tar.* ; le conteneur ar est transparent pour les utilisateurs finaux (dpkg s'en occupe).
- Bibliothèque statique .a (même format, extension différente) - Sur Linux/macOS, .a est l'extension conventionnelle pour les bibliothèques statiques au format ar ; .ar est moins courant mais identique.
Programmes qui ouvrent les fichiers AR
Détails techniques
spécifications approfondies| Octets magiques | 21 3C 61 72 63 68 3E 0A - chaîne ASCII !<arch> plus saut de ligne (0x0A) à l'offset 0 |
| Type MIME | application/x-archive |
| Taille de l'en-tête par membre | 60 octets (champs de largeur fixe, encodés en ASCII) |
| Disposition des champs de l'en-tête | Nom de fichier 16 o, heure de modification 12 o, UID 6 o, GID 6 o, mode 8 o, taille 10 o, magie 2 o |
| Alignement des membres | Frontière de 2 octets ; les membres de longueur impaire sont complétés par un seul caractère de saut de ligne (0x0A) |
| Compression | Aucune par défaut - les fichiers membres sont stockés textuellement et sans compression |
| Vérification d'intégrité | Aucune somme de contrôle par membre ou au niveau de l'archive dans le format ar |
| Limite de nom de fichier | 16 caractères dans l'en-tête fixe ; illimité via l'extension en ligne BSD ou la table de membres // de System V |
| Variantes du format | BSD (macOS) : noms étendus en ligne ; System V/GNU (Linux) : table de membres // pour les noms longs |
| Index des symboles GNU | GNU ar ajoute un membre de table de symboles / aux archives .a pour une recherche de symboles efficace lors de l'édition de liens |
| Support des archives minces (thin) | Les archives minces GNU utilisent la magie 21 3C 74 68 69 6E 3E 0A (!<thin>) et stockent les chemins de fichiers, pas les données |
| Utilisations principales | Bibliothèques statiques .a (Linux, macOS), paquets Debian .deb, paquets OpenWrt .ipk |
| Plateformes | Linux, macOS, FreeBSD, Solaris, AIX, Windows (MinGW/Cygwin/WSL) |
| Publié | 1971 (Unix v1, as the original Unix archiver) |
| Dernière version | POSIX.1-2017 specifies the format; GNU ar (binutils) is current implementation |
| Standard ouvert | Oui · libre de droits |
| Spécification | pubs.opengroup.org |
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers AR.