Aller au contenu

PhotoRec

Un article de Wikipédia, l'encyclopédie libre.
PhotoRec
Description de l'image PhotoRec Logo.svg.
Description de cette image, également commentée ci-après
Démonstration de PhotoRec fonctionnant sous Linux
Informations
Créateur Christophe Grenier (d)Voir et modifier les données sur Wikidata
Développé par Christophe Grenier
Première version
Dernière version 7.2 ()
Dépôt git.cgsecurity.org/cgit/testdiskVoir et modifier les données sur Wikidata
Écrit en C
Environnement Multiplate-forme
Formats lus 7z, APK, ACE (format de fichier), ARJ (d), Windows NTBackup archive (d), bzip2 (d), Cabinet, Dar archive (d), Deb, Grasshopper program (XML) (d), GZIP (en), Lha, Parchive, version 2 (d), RAR, RPM (d), tar, Veeam Backup Metadata (d), Windows Imaging Format, Xar, XZ, ZIP, format de fichier 3D Mesh (en), Rhino 3D Model file format family (d), 3GPP2 (d), 3GPP (d), Photoshop brush (d), Adobe Color Book (d), Adobe Duotone Options File (d), After Effects project, binary variant (d), Affinity Design document (d), Audio Interchange File Format, Cubase song (d), Ableton Live Set (d), Windows Animated Cursor (en), Monkey's Audio file format (d), ARRIRAW image (d), Sony ARW (d), Advanced Systems Format, Windows Media (d), Au, Audio Video Interleave, Avid / Pinnacle Studio Project (d), BINVOX voxel file format (d), AVCHD Index File (d), .blend (d), Windows bitmap, Better Portable Graphics, Blue Iris Video (d), CINEMA 4D (d), Core Audio Format, Camtasia Studio Screen Recording (d), CATIA Drawing file format family (d), Compact Disc Audio track, ConceptDraw Document (d), ConceptDraw Library (d), CorelDRAW (d), CorelDraw Template (d), Celtx, Screenwriting & Media Pre-production file (d), Compucon EOS Design File (d), Comic Life file (d), AVCHD Clip Information File (d), Cubase project (d), Canon Original RAW, version 2 (d), Canon Original RAW, version 3 (d), Camera Image File Format (en), Adobe Photoshop Custom Shape (d), Canon Photo Info file (d), .cue, Thumbs.db, DICOM (d), DCR (d), DjVu, Digital Negative, Photobook Designer file (d), Digital Picture Exchange, Digital Speech Standard (en), Digital Speech Standard audio (v2) (d), Mac OS X folder information (d), Digital Video, TeX Binary File (d), DWG, Enhanced Metafile, EPUB, Earth Resource Mapper Raster (d), Logic EXS24 instrument file (d), Projet Final Cut Pro (d), Macromedia Freehand file format, version 10 (d), Macromedia Freehand file format, version 5 (d), Free Lossless Audio Codec (d), Adobe Flash project (d), Raw FL Studio Project (d), FLV (d), GIF, Guitar Pro 4 tablature (d), Guitar Pro 5 tablature (d), Guitar Pro 6 tablature (d), High Efficiency Image File Format, Profil ICC, Apple Icon Image et ICOVoir et modifier les données sur Wikidata
Langues Anglais
Type Récupération de données
Licence GNU GPL
Site web www.cgsecurity.org

PhotoRec est un logiciel libre de récupération de données conçu pour récupérer les fichiers perdus des mémoires des appareils photos numériques (CompactFlash, Memory Stick, Secure Digital, SmartMedia, Microdrive, MMC), disque durs, clé USB et CD-ROM.

Il récupère les formats de photos les plus courants, notamment JPEG, mais aussi des formats audios (MP3, Ogg…), des formats de documents comme OpenDocument, Microsoft Office, PDF et HTML et des archives (ZIP, RAR…)[1].

PhotoRec n'essaie pas de réparer le support endommagé de l'utilisateur, mais il tente d'en extraire les données et va écrire les fichiers récupérés vers un répertoire du choix de l'utilisateur. PhotoRec peut être utilisé pour de la récupération de données mais également pour la recherche de preuves numériques[2],[3],[4].

PhotoRec est distribué avec TestDisk[5].

PhotoRec est disponible pour plusieurs systèmes d'exploitation :

Principe de fonctionnement de PhotoRec

[modifier | modifier le code]

Les systèmes de fichiers FAT, NTFS, ext2/ext3/ext4 enregistrent les fichiers dans des blocs de données (ou sous Windows en anglais cluster). La taille d'un bloc de données est un nombre constant de secteurs défini lors du formatage du système de fichiers. En général, la plupart des systèmes d'exploitation essaient de stocker les données de manière contiguë de façon à minimiser la fragmentation. Le temps de recherche (en anglais seek time) des disques mécaniques est significatif lors des opérations de lecture depuis ou d'écriture vers un disque dur, c'est pourquoi il est important de maintenir la fragmentation à un niveau minimum.

Quand un fichier est supprimé, les méta-informations (nom de fichier, date/heure, taille, emplacement du premier bloc de données…) sur ce fichier sont perdus. Par exemple, sur un système de fichiers ext3 ou ext4, le nom des fichiers effacés reste présent, mais l'emplacement du premier bloc de données est perdu. Cela signifie que les données sont toujours présentes sur le système de fichiers, mais seulement jusqu'au moment où tout ou partie de ces données seront écrasés par les données d'un nouveau fichier.

Pour récupérer ces fichiers perdus, PhotoRec commence par déterminer la taille des blocs de données. Si le système de fichiers n'est pas corrompu, cette information peut être lue depuis le superblock (ext2/ext3/ext4) ou du secteur de boot (FAT, NTFS). Sinon, PhotoRec lit le support, secteur par secteur, à la recherche des dix premiers fichiers à partir des emplacements desquels il calcule la taille des blocs. Une fois la taille des blocs connue, PhotoRec lit le support bloc par bloc (ou cluster par cluster). Les données de chaque bloc sont comparées par rapport à une base de signatures. Cette base de signatures native au produit n'a cessé de s'étoffer avec chaque nouvelle version depuis la création du logiciel. Cette technique de récupération de données est appelée en anglais file carving.

Par exemple, PhotoRec identifie un fichier JPEG lorsqu'un bloc de données commence par :

  • SOI (Start Of Image) + APP0: 0xff, 0xd8,0xff, 0xe0
  • SOI (Start Of Image) + APP1: 0xff, 0xd8,0xff, 0xe1
  • ou SOI (Start Of Image) + Comment: 0xff, 0xd8, 0xff, 0xfe

Si PhotoRec est déjà en train de récupérer un fichier, il arrête sa récupération, vérifie si possible sa cohérence et commence à sauvegarder ce nouveau fichier qu'il a déterminé à partir de la signature qu'il a trouvée. Il arrive cependant qu'un nouveau fichier soit détecté de façon erronée du fait de la présence dans le flux de données d'une fausse signature correspondant à un fichier d'un autre type : dans ce cas le fichier précédent est tronqué ou corrompu au-delà de ce point, alors même qu'il était enregistré de façon séquentielle et donc récupérable en totalité (dans un tel cas, on peut tenter d'extraire manuellement le fichier au moyen d'un éditeur hexadécimal en utilisant le nom du fichier, comportant toujours une lettre suivie du numéro du premier secteur[6]).

Si les données ne sont pas fragmentées, le fichier récupéré doit être identique à l'original ou avoir une taille potentiellement plus grande que le fichier original. Dans certains cas, PhotoRec peut apprendre la taille du fichier original à partir de l'en-tête du fichier, le fichier récupéré est alors tronqué à la bonne taille. Si le fichier sur le point d'être récupéré s'avère plus petit que la taille déterminée à partir de l'en-tête, ce fichier est ignoré car invalide (sauf si l'on a sélectionné l'option « Keep broken files » avant de lancer l'analyse, auquel cas même les fichiers partiels sont extraits, certains peuvent être quand même lisibles jusqu'au point de rupture, d'autres non, lorsque des informations essentielles se trouvent en fin de fichier, ce qui peut être le cas par exemple des fichiers vidéo en conteneur MP4). Certains fichiers comme les MP3 sont constitués de flux de données, dans ce cas, PhotoRec analyse les données récupérées et arrête la récupération avec l'arrêt du flux.

Quand un fichier est récupéré avec succès, PhotoRec vérifie à nouveau les blocs de données précédents pour le cas où la signature d'un fichier aurait été trouvée sans que le fichier puisse être récupéré avec succès (par exemple, si le fichier était trop petit par rapport à la taille spécifiée dans son en-tête), et essaie à nouveau de le compléter. De cette façon, certains fichiers fragmentés sont récupérés avec succès[7].

Popularité

[modifier | modifier le code]

TestDisk et PhotoRec ont été téléchargés plus de 150 000 fois en juillet 2008 depuis le site internet principal. En fait, ces utilitaires sont mêmes plus populaires car ils se retrouvent dans divers Live CD Linux :

  • Recovery Is Possible, un dérivé Slackware
  • Knoppix STD
  • GParted Live CD
  • Iloog
  • Parted Magic
  • PLD Live CD et PLD RescueCD, basé sur la distribution Linux PLD
  • Slax-LFI, une distribution dérivée de Slax
  • SystemRescueCd
  • Trinity Rescue Kit
  • Ubuntu Rescue Remix, un dérivé de Ubuntu

Ils sont aussi disponibles pour de nombreuses distributions Linux :

Liens externes

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. (en) Formats de fichiers récupérés par PhotoRec
  2. (en) Jack Wiles, Kevin Cardwell, Anthony Reyes (2007). The best damn cybercrime and digital forensics book period, p. 220. Syngress Publishing Inc. (ISBN 978-1-59749-228-7).
  3. (en) Cameron H. Malin, Eoghan Casey, James M. Aquilina (2008). Malware Forensics: Investigating and Analyzing Malicious Code, p. xxviii. Syngress Publishing Inc. (ISBN 978-1-59749-268-3).
  4. (en) Nathan Clarke (2010), Computer Forensics: A Pocket Guide, p. 67. IT Governance Publishing. (ISBN 978-1849280396).
  5. (en) Scott Mueller, Brian Knittel (2008). Upgrading and Repairing Microsoft Windows, Second Édition, page 685. Pearson Éducation Inc. (ISBN 978-0789736956).
  6. Au-delà de 2 téra-octets, toutefois, du fait d'une limitation du calcul en 32 bits, la valeur indiquée dans le nom du fichier est égale à : [numéro du 1er secteur] - 2^32 ; c'est-à-dire que pour obtenir la valeur correcte il faut ajouter 4294967296. Par exemple un fichier MP4 extrait à partir du secteur 5841422168 (soit situé à 2785 Go du début du volume de données analysé) aura pour nom "f1546454872.mp4".
  7. (en) Comment fonctionne PhotoRec (Description venant du site web de l'auteur)
  8. TestDisk dans ALT Linux
  9. ArchLinux Extra Repository
  10. TestDisk pour Debian
  11. TestDisk dans Fedora
  12. TestDisk dans EPEL
  13. TestDisk dans les ports FreeBSD
  14. TestDisk dans Gentoo
  15. TestDisk dans Gentoo Portage
  16. TestDisk dans Source Mage
  17. « TestDisk dans Ubuntu »(Archive.orgWikiwixArchive.isGoogleQue faire ?)