Renifleur de fichiers


Histoire

L'histoire de cet exercice repose sur la comparaison entre l'extension d'un fichier et le format binaire de ce fichier, afin d'explorer les notions de données binaires, de correspondance de motifs et d'encodage des chaînes de caractères. L'apprenant a pour tâche d'écrire quelques fonctions qui comparent le type MIME attendu au type MIME encodé dans le fichier.

Tâches

L'histoire amène à définir plusieurs fonctions :

  • Renvoyer le type MIME à partir d'une extension de fichier donnée sous forme de string.
  • Renvoyer le type MIME à partir d'un format de fichier binaire.
  • Comparer le type MIME attendu, déduit de l'extension sous forme de string, au type réel obtenu à partir du fichier binaire.

Référence de l'exercice

Type de fichier Extension courante Type MIME « signature » binaire des premiers octets
ELF none ou "exe" "application/octet-stream" 0x7F, 0x45, 0x4C, 0x46
BMP "bmp" "image/bmp" 0x42, 0x4D
PNG "png" "image/png" 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A
JPG "jpg" "image/jpg" 0xFF, 0xD8, 0xFF
GIF "gif" "image/gif" 0x47, 0x49, 0x46

Implémentations