Éditeur Hexadécimal Binaire | Visualiser et éditer des fichiers en hexadécimal
Déposez un fichier pour afficher son contenu octet par octet sous forme hexadécimale (hex dump). Identifiez le véritable type du fichier grâce aux octets magiques, éditez des octets individuels et téléchargez le résultat. Le fichier n'est jamais envoyé à un serveur.
Signatures de fichiers courantes (nombres magiques)
| Format | Premiers octets (hex) | Décalage | Remarque |
|---|---|---|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | 0 | Fichier image. Si les 8 octets correspondent, il s'agit presque à coup sûr d'un PNG |
| JPEG | FF D8 FF | 0 | Fichier image. Le 4e octet varie selon la variante (JFIF, Exif, etc.) |
| GIF | 47 49 46 38 39 61 / 47 49 46 38 37 61 | 0 | La chaîne ASCII "GIF89a" ou "GIF87a" |
| 25 50 44 46 2D | 0 | La chaîne ASCII "%PDF-", suivie du numéro de version | |
| ZIP / docx / xlsx / jar | 50 4B 03 04 | 0 | Format ZIP. Office Open XML et de nombreux formats d'archive sont en réalité des ZIP |
| Exécutable Windows (EXE/DLL) | 4D 5A | 0 | La chaîne ASCII "MZ", un en-tête hérité de MS-DOS encore présent dans le format PE |
| Exécutable ELF | 7F 45 4C 46 | 0 | Exécutables et bibliothèques partagées utilisés sous Linux et systèmes similaires |
Astuces pour utiliser l'éditeur hexadécimal
- Pour démasquer un fichier dont l'extension a été modifiée, comparez ses premiers octets (octets magiques) au tableau ci-dessus. L'extension n'est qu'une étiquette, alors que les octets magiques proviennent du format lui-même et sont bien plus difficiles à falsifier.
- En mode hexadécimal manuel, vous pouvez coller directement des séquences d'octets copiées depuis d'autres outils (séparées par des espaces ou des sauts de ligne, les deux fonctionnent) et les charger.
- Si vous cliquez sur la mauvaise cellule pendant l'édition, appuyez sur Échap pour annuler l'édition de cette cellule sans modifier l'octet.
- Lors du débogage d'un protocole binaire, comparez dans cet outil les octets attendus à ceux réellement envoyés ou reçus pour repérer précisément où ils divergent.
Questions fréquentes
FF D8 FF, il s'agit très probablement d'une image JPEG, quelle que soit son extension.
Anecdote — Pourquoi la véritable identité d'un fichier tient dans ses octets, pas dans son extension
L'extension d'un fichier n'est qu'une indication destinée au système d'exploitation pour savoir avec quelle application l'ouvrir ; c'est une étiquette qui existe indépendamment du contenu réel du fichier. Renommer `photo.jpg` en `notes.txt` ne le transforme pas en texte, et retirer l'extension d'une véritable image n'efface pas les données de l'image sous-jacente. Précisément parce que cette étiquette n'est, en somme, qu'une autodéclaration, les logiciels malveillants exploitent depuis longtemps cette faille pour déguiser des exécutables en images ou documents anodins.
Pour contourner ce problème, la plupart des formats de fichiers intègrent dans leurs premiers octets un identifiant unique, appelé octets magiques ou nombre magique. Un fichier PNG, par exemple, commence toujours par la séquence exacte de 8 octets `89 50 4E 47 0D 0A 1A 0A`, telle que définie par la spécification. Cela signifie qu'un système d'exploitation ou une application ne peut être réellement certain du format d'un fichier qu'après avoir inspecté son contenu réel, et non son nom. La commande `file` d'Unix comme la détection du type MIME des navigateurs s'appuient principalement sur la comparaison de ces octets magiques plutôt que sur l'extension.
Certaines séquences d'octets magiques recèlent une astuce historique ingénieuse. Les 8 octets du PNG incluent volontairement une séquence de fin de ligne (0D 0A), précisément pour que les transferts en mode texte, qui altèrent parfois les sauts de ligne, puissent être détectés comme corrompus. Loin d'être un simple identifiant arbitraire, cette séquence sert donc aussi de vérification d'intégrité intégrée, un petit détail qui révèle à quel point la conception des formats binaires est réfléchie.