É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"
PDF 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

Oui. Chargez le fichier et comparez ses premiers octets au tableau des "signatures de fichiers courantes" ci-dessus. Si un fichier nommé `.txt` commence en réalité par FF D8 FF, il s'agit très probablement d'une image JPEG, quelle que soit son extension.

Afficher d'un seul coup un fichier de plusieurs centaines de mégaoctets, voire plusieurs gigaoctets, sous forme de vidage hexadécimal risquerait de figer ou de faire planter l'onglet du navigateur en raison du nombre considérable d'éléments DOM générés. Limiter l'affichage aux premiers 64Ko permet de traiter en toute sécurité et sans latence les cas d'usage courants, comme l'inspection des en-têtes de fichier.

Si le contenu affiché a été tronqué aux premiers 64Ko, seul ce contenu sera inclus dans le téléchargement (tout ce qui dépasse n'est pas conservé). Pour les fichiers de 64Ko ou moins, tout est téléchargé à l'identique de l'original, à l'exception des octets que vous avez modifiés.

Non. Le chargement, l'affichage, l'édition et le téléchargement du fichier se déroulent entièrement en JavaScript dans votre navigateur ; le contenu du fichier n'est jamais transmis où que ce soit.
ツールくん

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.

→ Voir toutes les anecdotes