Après l'utilisation de PhotoRec

From CGSecurity
Jump to navigation Jump to search

En.png English De.png Deutsch Es.png Español Fr.png Français It.png Italiano Ro.png Română


Il peut être difficile de trier les fichiers restaurés par PhotoRec. Vous trouverez ci-dessous quelques idées pour vous aider dans cette tâche.

Trier les fichiers par extension

Vous pouvez utiliser ce script Python pour trier les fichiers trouvés par extension:

import os
import os.path
import shutil

while True:
    source = raw_input('Enter the source directory\n')
    if os.path.exists(source): break
    else: print 'The directory you have entered does not exist'
while True:
    destination = raw_input('Enter the destination directory\n')
    if os.path.exists(destination): break
    else: print 'The directory you have entered does not exist'

for root, dirs, files in os.walk(source, topdown=False):
    for files2 in files:
        extension = os.path.splitext(os.path.join(root,files2))[1][1:]
        if os.path.exists(os.path.join(destination,extension)):
            shutil.copy(os.path.join(root,files2), os.path.join(destination,extension))
        else:
            os.mkdir(os.path.join(destination,extension))
            shutil.copy(os.path.join(root,files2), os.path.join(destination,extension))

Jpeg

  • Les appareils Canon PowerShot enregistrent les numéros séquentiels d'image dans les données Exif, ainsi en utilisant un programme capable d'extraire les données Exif vers du texte, comme jhead, et le script Perl suivant, vous pourrez principalement restaurer tous les noms originaux des fichiers JPG. --Vees 01:59, 8 January 2007 (CET) - En cas il faut d'installer jhead avant, p.E.: sudo apt install jhead --UlfZibis 16:00, 17 January 2018
#!/usr/bin/perl -w
# read optional working directory from the command line:
$dir = (@ARGV > 0) ? $ARGV[0] : '.';
$dir =~ s/\/*$//;    # truncate trailing '/'s

foreach $file (glob "$dir/*") {
    chomp $file;
    open(EXIF, '-|', 'jhead', '-v', $file) or die "Not found jhead $!";
    if (defined(<EXIF>)) {
        foreach $line (<EXIF>) {
            if ($line =~ /Canon maker tag 0008 Value = [1-9]\d\d(\d{1,8})$/) {
                rename($file, "$dir/IMG_$1.JPG");
                print "$dir/IMG_$1.JPG from $file\n";
                last;
            }
        }
        close EXIF or die "EXIF: $! $?";
    }
}

En supplement déplacer les fichiers sur la structure originale des dossiers: --UlfZibis 16:10, 17 January 2018 (CET)

#!/usr/bin/perl -w
# read optional working directory from the command line:
$dir = (@ARGV > 0) ? $ARGV[0] : '.';
$dir =~ s/\/*$//;    # truncate trailing '/'s

foreach $file (glob "$dir/*") {
    chomp $file;
    open(EXIF, '-|', 'jhead', '-v', $file) or die "Not found jhead $!";
    if (defined(<EXIF>)) {
        $folder_no = '000';
        $picture_no = '0000';
        $date = '0000';
        foreach $line (<EXIF>) {
            if ($line =~ /Canon maker tag 0008 Value = ([1-9]\d\d)(\d{1,8})$/) {
                $folder_no = $1;
                $picture_no = $2;
            }
            if ($line =~ /Time\s*:\s*\d{4}:(\d\d):(\d\d)\s[\d:]{8}$/) {
#                $date = "$1$2";
                $date = "$2$1";    # if camera language setting = german
                last;
            }
        }
        print "$dir/$folder_no\_$date/IMG_$picture_no.JPG from $file\n";
        mkdir("$dir/$folder_no\_$date");
        rename($file, "$dir/$folder_no\_$date/IMG_$picture_no.JPG");
        close EXIF or die "EXIF: $! $?";
    }
}
  • Ci-dessous un fichier batch pour Windows qui recrée la structure originale des dossiers et noms de fichiers présents sur la carte (pour les appareils Canon, testé avec de nombreuses photos depuis un EOS 20D), en utilisant l'information EXIF de numéro de fichier (au moyen de ExifTool), à peu près comme le script shell ci-dessus. --Joey 08:36, 17 July 2008 (CEST)
@echo off
for %%f in (*.jpg) do call :process %%f
goto :eof
:process
for /f "usebackq delims=- tokens=1,2" %%a in (`exiftool -p ^"^$FileNumber^" %1`) do set gnum=%%a&set fnum=%%b
if "%gnum%"=="" goto :eof
if "%fnum%"=="" goto :eof
if not exist %gnum%CANON (
	echo Creating directory %gnum%CANON
	mkdir %gnum%CANON
)
echo Moving %1 to %gnum%CANON\_mg_%fnum%.jpg
ren %1 _mg_%fnum%.jpg>NUL
move _mg_%fnum%.jpg %gnum%CANON>NUL
goto :eof

Enlever les données inutiles (et invisibles) à la fin des images restaurées

  • Sous Linux, pour les extensions de fichiers dont le type est reconnu par ImageMagick, pour retirer les données inutiles après la fin des fichiers, vous pouvez lancer quelque chose comme :
for file in recup_dir*/*; do convert $file $file; done
  • Sous Linux (ou avec perl et 'convert'), vous pouvez automatiser la boucle 'for' ci-dessus et appliquer de nombreux autres processus de traitement d'image avec fix_img

Trouver les doublons

  • Sous Linux, md5sum peut être utilisé pour trouver les doublons, peut-être juste en appliquant le calcul aux x premiers octets.

Dans cet exemple, nous vérifions les premiers 80k de recup_dir*/*.sib

for file in recup_dir.*/*.sib; do MD5=`dd count=20 bs=4k if="$file" 2> /dev/null|md5sum`; echo "$MD5 $file"; done|sort
1a07198de3486ff2ecab7859612fe7ba  - Box Clever.sib
33105f4a7997b2e2681e404b3ac895f2  - Random, Matching - 2 bars.sib
376e0c53e78e56ba6f2858d9680f8c6b  - 01aIdentifyCommonInst.sib
b0b40a516a1e26660748a0a09cdf3207  - 01ArticulationFlashcards.sib

Chaque checksum est unique, il n'y a donc pas de doublon.

  • Sous Linux (ou avec perl et 'sum'), vous pouvez trouver les doublons dans une arborescence en utilisant find_dup ou finddup de fslint.
  • Sous Windows vous pouvez utiliser l'utilitaire fc pour trouver des doublons, le script suivant (ne fonctionne pas sous Win9x/ME) peut aider: --Joey 08:36, 17 July 2008 (CEST)
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET FILELIST=
FOR %%i IN (*) DO (
	FOR %%j IN (!FILELIST!) DO (
		IF %%~zi EQU %%~zj (
			fc /b "%%~i" "%%~j">NUL && echo "%%~i" = "%%~j"
		)
	)
	SET FILELIST=!FILELIST! "%%~i"
)
ENDLOCAL
  • Sous Windows vous pouvez ajouter un "/r" (sans les guillemets) aprés chacun des "for" dans le fichier batch ci-dessus.


MP3, Ogg vorbis...

La plupart des fichiers mp3 et ogg ont des informations embarquées comme le titre, l'album et l'auteur. Vous pouvez utiliser EasyTag pour renommer automatiquement les mp3 et ogg récupérés en utilisant ces informations.

MS Office

  • Pour lire des documents MS Office (doc/xls/ppt/...) cassés que MS Office n'arrive plus à ouvrir, vous pouvez essayer OpenOffice. OpenOffice est une suite office multiplateforme et multilingue, et un projet open-source. Compatible avec toutes les principales autres suites Office, ce produit est libre. Vous pouvez le télécharger, l'utiliser et le redistribuer librement.
  • Quelques documents MS Office (xls/ppt/...) seront peut-être restaurés avec une extension Word ".doc", vous aurez alors à les renommer.

MS Outlook

  • Pour restaurer des fichiers Outlook ".pst" cassés, essayez Microsoft Scanpst

Messenger Log File