Pas Tout A Fait

Aller au contenu | Aller au menu | Aller à la recherche

Analyse des métadonnées avec hachoir

Dernière mise à jour le 30 août 2011

Les fichiers binaires sont aujourd'hui totalement incontournables dans l'utilisation quotidienne d'un ordinateur. Musiques, films, photos transitent en masse sur les réseaux, et tout ces fichiers sont accompagnés de métadonnées fournissant toutes les informations utiles sur leurs entrailles.

L'analyse de ces métadonnées est le plus souvent réalisée par les logiciels dédiés à la lecture d'une catégorie de fichier particulière, l'exemple le plus classique étant les tags des fichiers musicaux utilisés pour le classement des morceaux par auteur, album, année, etc... Les métadonnées permettent donc une classification très fine des fichiers.

Sous GNU/Linux, la commande file permet d'obtenir un bon nombre d'information et surtout le format du fichier analysé. Mais il est possible d'aller beaucoup plus loin dans l'analyse à l'aide de hachoir !

hachoir.jpg


Installation

Ecrit en python, hachoir est une suite d'utilitaires permettant diverses opérations sur les fichiers binaires, le plus connu étant hachoir-metadata.
Pour l'installer :

sudo apt-get install python-hachoir-metadata ou apt.png

Il existe une interface graphique en wxWidgets :

sudo apt-get install python-hachoir-wx ou apt.png

Les programmes de bases sont :

  • hachoir-metadata : L'extracteur de base, qui liste les métadonnées d'un fichier binaire.
  • hachoir-metadata-gtk : Une interface graphique utilisant GTK.
  • hachoir-wx : Une interface graphique utilisant wxWidgets.
  • hachoir-urwid : Interface en mode texte, permettent de naviguer dans les métadonnées.
  • hachoir-subfile : Permet de chercher les fichiers présents dans un binaire.

Utilisation

Hachoir-metadata

L'utilisation est des plus simple : $hachoir-metadata options fichiers

$hachoit-metadata --help ou man hachoir pour une liste complète des options.

$ hachoir-metadata --quality=0.6 --level=7 martine_din_ch-nord.pps 
Metadata:
- Title: Diapositive 1
- Author: JC-HARDUIN
- Version: RevisionNumber: 1
- Creation date: 2007-12-10 13:13:11
- Last modification: 2007-12-10 13:21:30
- Producer: Microsoft Office PowerPoint
- Comment: NumWords: 0
- MIME type: application/msword
- Endian: Little endian

Le paramètre --quality=0.6 permet d'indiquer le degré de recherche, comprit entre 0 (le plus rapide et le moins précis) et 1 (l'inverse!). Par défaut la valeur est 0.5.

Le paramètre --level=7 indique lui la quantité d'information à afficher. Compris entre 1 et 9 ( 9 affichant le plus d'informations possible).


$ hachoir-metadata --quality=0.1 skins.s01e04-jmt.avi 
Common:
- Duration: 44 min 34 sec 560 ms
- Image width: 624 pixels
- Image height: 352 pixels
- Frame rate: 25.0 fps
- Bit rate: 1.1 Mbit/sec
- Producer: MEncoder dev-SVN-rUNKNOWN-4.1.2
- Comment: Has audio/video index (2.7 MB)
- MIME type: video/x-msvideo
- Endian: Little endian
Video stream:
- Duration: 44 min 34 sec 560 ms
- Image width: 624 pixels
- Image height: 352 pixels
- Bits/pixel: 16
- Compression: XviD MPEG-4 (fourcc:"XVID")
- Frame rate: 25.0 fps
Audio stream:
- Duration: 44 min 34 sec 488 ms
- Channel: stereo
- Sample rate: 48.0 kHz
- Bits/sample: 16 bits
- Compression rate: 10.0x
- Compression: MPEG Layer 3 (fourcc:"U")
- Bit rate: 153.2 Kbit/sec

Hachoir décortique ce fichier vidéo, pour indiquer quantité de donnée concernant la vidéo et l'audio.


$ hachoir-metadata --quality=1 --level=9 img_0766.jpg 
Metadata:
- Image width: 2592 pixels
- Image height: 1944 pixels
- Image orientation: Horizontal (normal)
- Bits/pixel: 24
- Pixel format: YCbCr
- Compression rate: 5.1x
- Creation date: 2007-02-08 14:09:14
- Camera aperture: 2.97
- Camera focal: 2.8
- Camera exposure: 1/40
- Camera model: Canon PowerShot A95
- Camera manufacturer: Canon
- Compression: JPEG (Baseline)
- Comment: JPEG quality: 96% (approximate)
- MIME type: image/jpeg
- Endian: Big endian

Hachoir-metadata va ici chercher des informations dans ce fichier .jpg sans peine, et indique les données standard pour ce type de fichier.


$ hachoir-metadata PT3-FullOldBackUp.zip 
[warn] ZIP archive contains many files, but only first 6 files are processed
Common:
- MIME type: application/zip
- Endian: Little endian
File "Full Tilt/":
- File name: Full Tilt/
- File size: 0 bytes
- Creation date: 2008-08-05 22:16:02
- Compression: no compression
File "Full Tilt/FTP_HandsExport_200808052215_cash_00001.txt":
- File name: Full Tilt/FTP_HandsExport_200808052215_cash_00001.txt
- File size: 4.0 MB
- Compressed file size: 387.8 KB
- Compression rate: 10.7x
- Creation date: 2008-08-05 22:16:08
- Compression: Deflate
File "Full Tilt/FTP_HandsExport_200808052215_cash_00002.txt":
- File name: Full Tilt/FTP_HandsExport_200808052215_cash_00002.txt
- File size: 3.7 MB
- Compressed file size: 354.1 KB
- Compression rate: 10.7x
- Creation date: 2008-08-05 22:16:12
- Compression: Deflate
File "Full Tilt/FTP_HandsExport_200808052215_cash_00003.txt":
- File name: Full Tilt/FTP_HandsExport_200808052215_cash_00003.txt
- File size: 25.6 KB
- Compressed file size: 3167 bytes
- Compression rate: 8.3x
- Creation date: 2008-08-05 22:16:12
- Compression: Deflate
File "OnGame/":
- File name: OnGame/
- File size: 0 bytes
- Creation date: 2008-08-05 22:16:12
- Compression: no compression
File "OnGame/PR_HandsExport_200808052215_cash_00001.txt":
- File name: OnGame/PR_HandsExport_200808052215_cash_00001.txt
- File size: 52.0 KB
- Compressed file size: 6146 bytes
- Compression rate: 8.7x
- Creation date: 2008-08-05 22:16:12
- Compression: Deflate

Sur une archive, ici en .zip, on parvient à lister le contenu de celle-ci, avec des détails sur chaque fichiers compressés.


hachoir-urwid

Hachoir-urwid permet de naviguer dans les métadonnées d'un fichier avec le clavier. Les informations disponibles par ce biais sont colossales, et les métadonnées, présentée sous forme de lignes extensibles sont classées suivant leurs positions dans le fichier.

On arrive avec hachoir-urwid à totalement décortiquer un fichier binaire, mais il faut alors savoir analyser toutes ces données. Pour une utilisation courante, hachoir-metadata est bien plus abordable.

capture-hachoir-urwid.jpg


hachoir-subfile

Hachoir-subfile permet d'aller chercher dans un fichier binaire les autres fichiers éventuellement contenus dans celui-ci. Un exemple évident étant un fichier PowerPoint contenant des images :

$ hachoir-subfile martine_din_ch-nord.pps 
[+] Start search on 1755136 bytes (1.7 MB)

[+] File at 0 size=1755136 (1.7 MB): Microsoft Office document
[+] File at 537 size=78982 (77.1 KB): JPEG picture
[+] File at 79544 size=109857 (107.3 KB): JPEG picture
[+] File at 189426 size=109407 (106.8 KB): JPEG picture
[+] File at 298858 size=99817 (97.5 KB): JPEG picture
[+] File at 398700 size=123662 (120.8 KB): JPEG picture
[+] File at 522387 size=160691 (156.9 KB): JPEG picture
[+] File at 683103 size=127462 (124.5 KB): JPEG picture
[+] File at 810590 size=112391 (109.8 KB): JPEG picture
[+] File at 923006 size=107744 (105.2 KB): JPEG picture
[+] File at 1030775 size=113490 (110.8 KB): JPEG picture
[+] File at 1144290 size=127251 (124.3 KB): JPEG picture
[+] File at 1271566 size=97261 (95.0 KB): JPEG picture
[+] File at 1368852 size=106703 (104.2 KB): JPEG picture
[+] File at 1475580 size=103494 (101.1 KB): JPEG picture
[+] File at 1579099 size=119511 (116.7 KB): JPEG picture
[+] File at 1710412 size=21400 (20.9 KB): Microsoft Windows Metafile (WMF) picture

[+] End of search -- offset=1755136 (1.7 MB)
Total time: 1 sec 696 ms -- global rate: 1010.5 KB/sec

Mais hachoir-subfile sait également aller travailler sur les périphériques :

$ hachoir-subfile /dev/sda --size=34200100 --quiet
[+] Start search (32.6 MB)

[+] Found file at 0: MS-DOS hard drive with Master Boot Record (MBR)
[+] Found file at 32256: FAT16 filesystem
[+] Found file at 346112 size=308280 (301.1 KB): Microsoft Bitmap version 3
[+] Found file at 32157696: MS-DOS executable
[+] Found file at 32483328: MS-DOS executable
[+] Found file at 32800768: MS-DOS executable
[+] Found file at 32851968: MS-DOS executable
[+] Found file at 32872448: MS-DOS executable
[+] Found file at 33058816: MS-DOS executable
[+] Found file at 33112064: MS-DOS executable
[+] Found file at 33142784: MS-DOS executable
[+] Found file at 33949936: Microsoft Windows Portable Executable: Intel 80386 or greater

[+] Search done -- offset=34200100 (32.6 MB)
Total time: 20.08 sec -- 1.6 MB/sec

Voilà pour terminer la liste des "parser" disponibles à l'heure actuelle :

  • Archive :
    • bzip2 : bzip2 archive
    • cab : Microsoft Cabinet archive
    • gzip : gzip archive
    • mar : Microsoft Archive
    • tar : TAR archive
    • zip : ZIP archive
  • audio
    • aiff : Audio Interchange File Format (AIFF)
    • mpegaudio : MPEG audio version 1, 2, 2.5
    • realaudio : Real audio (.ra)
    • sunnextsnd : Sun/NeXT audio
  • Conteneur :
    • matroska : Matroska multimedia container
    • ogg : Ogg multimedia container
    • realmedia : RealMedia (rm) Container File
    • riff : Microsoft RIFF container
    • swf : Macromedia Flash data
  • Vidéo :
    • asf : Advanced Streaming Format (ASF), used for WMV (video) and WMA (audio)
    • flv : Macromedia Flash video
    • mov : Apple QuickTime movie
  • Image :
    • bmp : Microsoft bitmap (BMP) picture
    • gif : GIF picture
    • ico : Microsoft Windows icon or cursor
    • jpeg : JPEG picture
    • pcx : PC Paintbrush (PCX) picture
    • png : Portable Network Graphics (PNG) picture
    • psd : Photoshop (PSD) picture
    • targa : Truevision Targa Graphic (TGA)
    • tiff : TIFF picture
    • wmf : Microsoft Windows Metafile (WMF)
    • xcf : Gimp (XCF) picture
  • Programme :
    • exe : Microsoft Windows Portable Executable
  • Autres :
    • ole2 : Microsoft Office document
    • pcf : X11 Portable Compiled Font (pcf)
    • torrent : Torrent metainfo file
    • ttf : TrueType font

Hachoir est donc un véritable couteau suisse, capable de rassembler et afficher toutes les informations contenues dans les fichiers binaires. Il s'agit donc d'un outil très utile, capable de rendre de grands services en complément d'un programme comme file.

A vos binaires !

Matthieu Patout

Auteur: Matthieu Patout

Restez au courant de l'actualité et abonnez-vous au Flux RSS

Soyez le premier à réagir sur cet article

Ajouter un commentaire Fil des commentaires de ce billet

aucune annexe



Voir Aussi

logo-debian.png

Mise à jour automatique avec Cron-APT

Maintenir à jour les logiciels d'un serveur est la première étape d'une bonne politique de sécurité....

Lire la suite

Présentation de Seeks et installation sous Debian Lenny

La recherche sur internet est l'affaire aujourd'hui de quelques grands groupes commerciaux, dominés...

Lire la suite


Découvrez le Nouveau « Pack Liberté »