Le parseur universel de fichier binaire, Hachoir, continue sa route. L'arrivé d'un nouveau membre dans l'équipe de développement s'accompagne d'une nouvelle interface utilisateur (en texte, mais en couleur !) qui exploite enfin son comportement paresseux : seul les premiers champs sont lus (3 par 3). Ceci permet d'ouvrir une vidéo de 700 Mo ou un partition de 10 Go sans broncher.
De plus, Hachoir est maintenant capable de rattraper les erreurs des parseurs bogués ou des fichiers corrompus. Il peut extraire les méta-données d'une image, musique ou vidéo, même s'il n'a que les premiers kilo-octets du fichier et/ou si une partie des méta-données sont corrompues.
Au niveau des méta-données, cette version donne beaucoup plus d'informations (ex: durée d'un vidéo), et sait maintenant utiliser les informations EXIF et IPTC (Photoshop).
Les nouveaux parseurs sont IPTC, Ogg, Matroska, et les informations Photoshop (8BIM).
Plus d'informations sur le site internet :
http://hachoir.python-hosting.com/wiki/HachoirYield
--
Hachoir n'a que peu de similarité avec Beagle/Kat, à la limite il pourrait servir de source de méta-données tel que libextractor ou mmpython si la partie « extraction des méta-données » était plus développée.
Hachoir est avant-tout une bibliothèque. Il peut être utilisé pour faire des traitements à la chaîne. On pourrait imaginer extraire les images d'une présentation PowerPoint (si le parseur Microsoft Office était plus évolué :-)).
À terme, il permettra d'éditer des fichiers et pourra alors servir à modifier un champ ou supprimer des champs (l'ajout est plus hasardeux). Exemple d'application : supprimer les mouchards d'un fichier (logiciel utilisé pour créer un document, date de création, coordonnées GPS, etc.). Autre exemple : localiser les espaces inutilisés (ils sont légions dans les fichiers) et les utiliser comme espace de stockage discret.
Anciens journaux :
http://linuxfr.org/~haypo/21758.html (30 mai 2006, 16 commentaires)
http://linuxfr.org/~haypo/21556.html (5 mai 2006, 8 commentaires)
# Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 3.
[^] # Re: Nouveau parseur ?
Posté par Victor STINNER (site web personnel) . Évalué à 6.
http://www.nondot.org/sabre/os/articles/FileSystems/
(ISO-9660, Joliet, etc.)
D'autres ressources :
http://hachoir.python-hosting.com/wiki/FileFormatResources
Je peux te filer un coup de main si tu veux écrire un parseur, car la documentation actuelle est pauvre :
http://hachoir.python-hosting.com/wiki/WriteYourParser
Haypo
[^] # Re: Nouveau parseur ?
Posté par syntaxerror . Évalué à 1.
En gros, une image iso commence par 32Ko de zéros binaires, une image Nero contient en plus 300Ko de zéros supplémentaires en tête avant le label (.CD001).
On peut facilement trancher les 300 premiers Ko (307200 octets) d'une ligne de python (ou avec hachoir ?), ou alors googlise un petit programme appelé nrg2iso.
P.S. si ce n'est pas un fichier .nrg, peux tu poster un URI vers le firmware ?
[^] # Re: Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 2.
En lisant le PDF qui indoque comment effectuer la mise à jour, ils stipulent bien: "choisir l'option CD ISO". Mais ces andouilles donnent des fichiers .ROM, donc pour savoir ce qu'il y a dedans, je suis un peu marron... même un coup de file -i est incapable de me dire le format. En les renommant en .iso, j'ai fait des test avec 2 logiciels de gravure sous linux, 2 sous windows, et impossible d'avoir un contenu cohérent.
De plus, j'avais déjà fait une mise à jour une fois, et j'avais pu graver l'image sans problème, et mettre à jour mon lecteur, c'était une image iso valide. Pourtant, mes mails envoyés au support technique tournent en rond: on me donne la procédure pour graver une image avec Nero, et que je suis le seul à m'être plaint, que ça marche pour les autres, blabla... Alors j'aurais voulu leur mettre le nez sur leur m***de.
Je vais tenter de sucrer le header que tu indiques (ma méthode à moi c'est un coup de dd ;-) ). Sinon, je devrai me résoudre à tenter l'installation de la version linux de néro (si elle est gratos, ce dont je ne suis pas sûr)
[^] # Re: Nouveau parseur ?
Posté par syntaxerror . Évalué à 3.
Peut être la procédure d'upgrade veut elle ce fichier tel quel sur le CD ?
Si je peux, j'essaierai ce soir pour voir ce qu'en dit nero.
[^] # Re: Nouveau parseur ?
Posté par Victor STINNER (site web personnel) . Évalué à 4.
À mon avis le fichier ROM contient un programme pour le processeur de ta platine (c'est une platine DVD/"DivX" non ?). Enfin, c'est peut-être un espèce de format d'archive contenant programme + des fichiers de données, mais en tout cas, c'est rien de classique (pas une archive TAR par exemple).
Haypo
[^] # Re: Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 2.
J'avais déjà réussi à la faire leur satanée upgrade, et je suis resté avec le sentiment que c'était en gravant en tant qu'image iso... Mais là je crois bien que tu as raison... c'est complètement con de dire "Veuillez choisir l'option: CD ISO", parce que logiquement, ça veut dire que c'est un fichier image, non ? C'est moi qui suis con, où c'est eux qui utilisent pas les termes les plus appropriés ? Dire de graver un CD de données, ça parait plus logique, non ?
[^] # Re: Nouveau parseur ?
Posté par galactikboulay . Évalué à 1.
[^] # Re: Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 4.
[^] # Re: Nouveau parseur ?
Posté par Victor STINNER (site web personnel) . Évalué à 4.
Donc oui, il vaut mieux parler de « CD-Rom de données » ;-)
La musique est encodée au format « Red Book » développée par Philips et Sony en 1980.
http://fr.wikipedia.org/wiki/Organisation_internationale_de_(...)
http://fr.wikipedia.org/wiki/ISO_9660
http://en.wikipedia.org/wiki/Red_Book_(audio_CD_standard)
Voili voilou pour la note culturelle,
Haypo
[^] # Re: Nouveau parseur ?
Posté par Victor STINNER (site web personnel) . Évalué à 2.
Je connais trois commandes pour faire ça :
mount iso /mnt/loop -t iso-9660 -o loop=/dev/loop3,offset=XXX
dd if=iso of=iso_coupe seek=XXX bs=XXX
tail -c +XXX
J'aime bien la dernière commande :-) (par tail commence à compter à 1, la "-c +2" zappe le 1er octet)
Pour trouver la bonne valeur, comparer une ISO normale et l'ISO bizzare avec "hexdump -C fichier | less", khexedit ou autre éditeur hexadécimal.
Haypo
[^] # Re: Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 2.
Bin j'ai essayé, mais je lis pas le format ISO couramment ;-) , d'ou l'utilité du hachoir...
[^] # Re: Nouveau parseur ?
Posté par benoar . Évalué à 2.
[^] # Re: Nouveau parseur ?
Posté par liberforce (site web personnel) . Évalué à 2.
[^] # Re: Nouveau parseur ?
Posté par Victor STINNER (site web personnel) . Évalué à 3.
http://www.nondot.org/sabre/os/files/FileSystems/iso9660.pdf
Le parseur ne lit que les "volumes" (4 blocs de 2 Ko sur l'ISO testé, netinst Debian Sarge).
http://hachoir.python-hosting.com/file/hachoir/trunk/src/hac(...)
(utilise la version SVN si tu veux tester, ou alors copie juste ce fichier au bon endroit, /usr/lib/python2.4/site-packages/hachoir.../parser/file_system/ -- pas sûr que ça marche :-))
À ce que j'ai compris :
* Il y a 0x8000 (32768) octets nuls au début du fichier
* Ensuite on trouve différents "volumes"
* Chaque volume fait 2048 octets et a comme entête "\x01CD001" (1, "CD001")
Est-ce que tu as la chaîne "CD001" dans ton fichier (au début) ?
Haypo
# gui
Posté par fabien . Évalué à 2.
la nouvelle interface : j'y comprends rien.
pas possible d'avoir les deux interfaces : deux front-end quoi...
[^] # Re: gui
Posté par Victor STINNER (site web personnel) . Évalué à 3.
La version 0.2 a été réécrite depuis zéro. Je suis reparti sur des bases saines : séparation nette entre le noyau (back-end) et l'interface utilisateur (frontend).
Des interfaces FUSE, Hurd, web (?), ou autre sont envisageables :-)
Haypo
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.