Journal hachoir-subfile : extrait les fichiers contenu dans un autre fichier

Posté par (page perso) .
Tags : aucun
0
16
jan.
2007
La suite Hachoir a pondu un nouveau outil : hachoir-subfile. L'idée est d'extraire des fichiers (non compressés, non chiffrés et non fragmentés) contenus dans d'autres fichier. Exemples :
* disque dur (ou image d'un disque)
* exécutable windows : peut contenir un SWF, des icônes, image GIF/PNG, ou n'importe quoi d'autre
* PDF : extraire les images JPEG
* Word / PowerPoint : extraire les images et les sons (évite d'avoir à lancer l'usine à gaz nommée OpenOffice)
* etc.

Téléchargement et plus d'info : http://hachoir.org/wiki/hachoir-subfile
Pour le tester, le plus simple est d'utiliser les snapshots.

Usage : "hachoir-subfile fichier" pour la détection, "hachoir-subfile fichier dossier" pour l'extraction (va créer dossier/file-0001.ext, dossier/file-0002.ext, ...). Attention, il écrase les fichiers existants dans le dossier spécifié. Spécifier le type de fichier recherché (avec --category et --parser) accélère beaucoup la recherche : 4 Mo/sec par défaut, 50 Mo/sec (limite de mon disque dur?) en recherchant uniquement des images JPEG (--parser=jpeg).

Les formats reconnus sont listés sur cette page :
http://hachoir.org/wiki/hachoir-parser

Problèmes / défauts :
* Certains formats sont désactivés car ils posent problèmes (JPEG, MPEG audio, TAR, ZIP, OGG)
* Ne supporte pas la fragmentation
* hachoir-subfile ne sait pas calculer la taille de certains formats (ex: EXE, DOC, gzip). L'extraction automatique ne fonctionne pas pour ces formats.

==

hachoir-subfile est un outil encore très jeune (2 semaines :-)), il a besoin d'être testé.
  • # Très bonne initiative.

    Posté par . Évalué à 2.

    Je sais qu'il faut sauver ses données. Mais il m'est déjà arrivé d'avoir à récurérer des fichiers sur un disque malade (partition crachée + disque qui s'allume une fois sur trois) Le plus dur quand on perd une partition perso, c'est de perdre les photos.

    Pouvoir récupérer les données est un mauvais rêve, on s'en réveille souvent fiévreux. Mais il est si difficile de sauvegarder ses données à moindre frais...

    J'espère que ce type de logiciel fonctionne un peu mieux que ce que j'avais essayé jusqu'a présent (je ne me souviens plus du nom et cela avait été dure de le trouver), et qui ne récupérait que les images.
    Je pense que je vais ressortir du placard ce disque qui fonctionne (tout de même) de temps en temps et tester comment cela fonctionne.


    Cela va peut-être aussi me permettre de regarder (enfin) les diaporama MSpowa que l'on m'envoie, qui ne contiennent que des photos (blagues,famille) et que parfois ni KOffice ni OOo ne peuvent lire.

    Peut-être aussi pourrais-je lire ces foutus cédéroms qui déconne un max avec plein de truc dessus ?

    Il est l'heure d'aller bossé.
    • [^] # Re: Très bonne initiative.

      Posté par . Évalué à 4.

      Une autre technique que j'apprecie pour récupérer des fichiers sur un dur bencale, c'est la combinaison "dd_rescue + photorec"

      dd_recue étant le clone de la commande dd mais qui continue son travail même en presence de secteurs défectueux.

      et photorec, livré avec testdisk, scanne l'ensemble du disque sans se préoccupper du filesystem afin de retrouver les fichiers présents.
      Et il faut pas se leurrer sur le nom de photorec, il reconnait bien plus que les formats d'image : http://www.cgsecurity.org/wiki/File_Formats_Recovered_By_Pho(...)

      Généralement ce couple donne de trés (trés) bon résultats.

      Les liens
      dd_rescue : http://www.garloff.de/kurt/linux/ddrescue/
      photorec : http://www.cgsecurity.org/wiki/PhotoRec
      • [^] # Re: Très bonne initiative.

        Posté par (page perso) . Évalué à 4.

        Oups, j'oublié de citer les projets concurrents :-) Il y a PhotoRec, mais j'ai aussi trouvé :
        http://www.digitalforensicssolutions.com/Scalpel/

        Effectivement, il vaut mieux travailler sur une image du disque car plus on lit un disque malade, moins en va en tirer de bonnes choses.

        Bien sûr, rien ne vaut une bonne sauvegarde :-)

        ---

        Je viens de regénérer le snapshot du jour : http://hachoir.tuxfamily.org/snapshot/hachoir-snapshot-2007-(...)

        Il manquait le fichier hachoir_subfile_regex.py. Ce fichier est encore tout frais. hachoir-subfile génère maintenant une expression régulière pour accélérer la recherche du début des fichiers.
      • [^] # Re: Très bonne initiative.

        Posté par . Évalué à 3.

        >> dd_recue étant le clone de la commande dd mais qui continue son travail même en presence de secteurs défectueux.

        Je crois qu'il fait plus que ça et qu'il essaie de les corriger. Parce que dd peut faire ce que tu dis avec l'option conv=noerror

        Par contre en ce qui concerne ddrescue, j'ai voulu l'utilisé sur un dvd, il m'a jeté au bout d'un moment en me disans que l'image était trop grande. (limitation de ddrescue ou du filesystem ?)

        Et une limitation que je trouve à dd / ddrescue (mais c'est peut-être moi qui ne sait pas bien m'en servir), c'est que l'on fait une image de tout le disque et pas uniquement des données.
        Pour un dvd, pas de problème, ça revient au même, mais sur une partition de 120 Go avec juste 20 Go d'écrits j'ai pas encore vu comment faire un ddrescue là-dessus pour essayer de sauver déjà ça.

        Sinon, pour en revenir au sujet, je trouve ça super intéressant comme outil, surtout que je ne connais vraiment rien d'équivalent dans ce domaine.
  • # rapports de bugs

    Posté par (page perso) . Évalué à 3.

    Les rapports de bugs vous les préférez en français ou en anglais ? Je suis en train de m'amuser avec le fuzzing et bien que ça prenne plus de temps et que ça soit moins « catastrophique » qu'avec des programmes en C, j'ai quand même réussi à provoquer quelques erreurs non prévues.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # mon fichier

    Posté par (page perso) . Évalué à 1.

    J'ai un fichier toto.exe
    quand j'exécute l'application j'ai accès à plusieurs animations qui sont en flash (j'en suis sûr à 95 %)

    j'ai exécuté la commande suivante

    python hachoir-subfile toto.exe
    Set maximum memory to 100.0 MB
    [+] Start search (11.4 MB)

    [+] Found file at 0: Microsoft Windows Portable Executable: Intel 80386 or greater

    [+] End of search -- offset=11998410 (11.4 MB)
    Total time: 1.53 sec -- global rate: 7.5 MB/sec


    Qu'est ce que cela veut dire ?
    Qu'il n'y pas de sous fichier ?
    Que le logiciel n'est pas capable de les trouver ?
    Si c'est le cas pourquoi et comment y remédier ?

    mon fichier toto.exe est sur mon serveur (11 Mo) pour ceux qui veulent tester.
    (cela parle de SVT et de physique)
    http://kobold.myftp.org/download/toto.exe
    • [^] # Re: mon fichier

      Posté par (page perso) . Évalué à 2.

      Qu'est ce que cela veut dire ?

      Qu'aucun fichier connu valide n'a été trouvé.

      Si c'est le cas pourquoi et comment y remédier ?

      Me dire où il est et comment le reconnaître que je puisse patcher.

      J'ai regardé vite fait, et je ne vois effectivement aucun format connu. Par contre, je dirai que le fichier est fortement compressé...

      Haypo
  • # Paquet Debian

    Posté par (page perso) . Évalué à 2.

    Hello

    Serait t'il possible de mettre le paquet debian correspondant à ce projet dans le dépot svp ?

    J'aimerais bien tester pour extraire des bmp de d'un excel et des images d'un .pps

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.