După utilizarea PhotoRec

From CGSecurity
Jump to: navigation, search

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


(N.T. în text = Nota traducătorului)

Sortarea fișierelor recuperate de PhotoRec poate fi destul de dificilă. Aici găsiți niște idei ajutătoare.

Sortarea fișierelor după extensie

  • builtBackwards a creat un script cu sursă deschisă numit PhotoRec Sorterce poate fi rulat pe Windows cu AutoIt v3.

PhotoRec Sorter se rulează în același dosar cu dosarele "recup_dir". Scriptul mută fiecare fișier într-un dosar nou care are numele extensiei (cu literă mare, de exemplu PDF, DOC, PPT)

La final veți avea toate fișierele sortate după extensie.

Descărcați sursa și executabilul compilat: PhotoRec Sorter Project Page --BuiltBackwards 02:10, 25 October 2008 (UTC)

  • Puteți utiliza acest script Python pentru a sorta fișierele după extensie.
  • Salvați codul de mai jos într-un fișier (recovery.py) apoi rulați-l cu parametrii „sursă” și „destinație”.

Exemplu: $ python recovery.py /home/me/recovered_files /home/me/sorted_files

#!/usr/bin/env python
import os
import os.path
import shutil
import sys

source = sys.argv[1]
destination = sys.argv[2]

while not os.path.exists(source):
    source = raw_input('Enter a valid source directory\n')
while not os.path.exists(destination):
    destination = raw_input('Enter a valid destination directory\n')

for root, dirs, files in os.walk(source, topdown=False):
    for file in files:
        extension = os.path.splitext(file)[1][1:].upper()
	destinationPath = os.path.join(destination,extension)
  	
	if not os.path.exists(destinationPath):
            os.mkdir(destinationPath)
	if os.path.exists(os.path.join(destinationPath,file)):
            print 'WARNING: this file was not copied :' + os.path.join(root,file)
	else:
	    shutil.copy2(os.path.join(root,file), destinationPath)

N.T: Unde /home/me/recovered_files este dosarul-sursă (unde sunt fișierele de sortat) și /home/me/sorted_files este dosarul-destinație (unde vor fi puse fișierele sortate). Dacă vă interesează doar fișierele cu o anumită extensie (d. ex. doar .jpg) puteți utilizat următoarea comandă *nix pentru a găsi toate fișierele dorite din dosarele „recup” și pentru a le copia în altă parte:

$ find /path/to/recovered/directories -name \*.jpg -exec cp {} /path/to/new/folder/ \;

N.T. /path/to/recovered/directories este calea către dosarele „recup”, ceva de genul /home/utlizator/recup-dir.1. /path/to/new/folder/ este calea către destinație (dosarul nou), ceva de genul /home/utilizator/dosar_recuperate

JPEG

  • Sortare fișiere JPEG cu ajutorul meta-datelor Exif.
  • Modelele de aparate foto Canon PowerShot (și alte modele) stochează numerotarea imaginilor/pozelor făcute în datele Exif,așa că se poate folosi un program ca jhead care să transfere aceste date în fișiere text sau scriptul Perl de mai jos care poate redenumi fișierele JPEG cu denumirile originale. --Vees 01:59, 8 January 2007 (CET)
$working_dir = '.';
$jhead_bin = '/usr/local/bin/jhead';

@recovered_files = `ls $working_dir`;
foreach $file (@recovered_files) {
        chomp $file;
        @exif = `$jhead_bin -v $working_dir/$file`;
        foreach $line (@exif) { 
                if ($line =~ /Canon maker tag 0008 Value = 100(\d{1,8})$/) {
                        system("mv $working_dir/$file $working_dir/IMG_$1.JPG");
                        print "IMG_$1.JPG from $file\n";
                        last;
                }
        }
}

Sau utilizați acest script pentru afișarea tuturor dosarelor, căutare fișierelor de o anumită mărime și salvarea lor într-un dosar în ordinea datei la care au fost create:

$working_dir = '/home/myhome/';
$result_dir = '/home/myhome/photos/'
$jhead_bin = '/usr/bin/jhead';

@rec_dirs = `ls ${working_dir} | grep recup_dir`;
foreach $recup_dir (@rec_dirs) {
	print "Scanning ${recup_dir}...";
	chomp $recup_dir;
	@photos_in_recup = `find ${working_dir}${recup_dir}/*jpg -type f -size +800k`;
	foreach $photo_file (@photos_in_recup) {
		chomp $photo_file;
#print "IMG $photo_file in $recup_dir\n";
		@exif = `$jhead_bin -v $photo_file`;
#print "$jhead_bin -v $photo_file\n";
		foreach $line (@exif) {
			if ($line =~ /Time\s*:\s*([0-9]{4}):([0-9]{2}):([0-9]{2})\s[0-9:]{8}$/) {
				print "IMG $photo_file $1-$2-$3\n";
				system("mkdir ${result_dir}$1-$2-$3");
#				system("mv $photo_file $result_dir/$1-$2-$3/");
				last;
			}
		}

	}
}
  • Următoarea comandă reface structura inițială a dosarelor și numele inițiale ale fișierelor de pe card utilizând datele EXIF (testată pe un aparat foto Canon cu EOS 20D). ExifTool rulează pe Windows și Linux.
exiftool -r "-FileName<IMG_${FileIndex}%c.%e" DIR

Utilizează FileIndex din datele EXIF pentru a fala numele inițial al fișierelor iar %c caută dublurile de fișiere și adugă o cifră la numele lor. Funcționează și recursiv cu opțiunea (-r).

  • Dați comanda următoare utilizând Exiv2 pentru a înlocui numele de la toate fișierele JPEGs cu data la care au fost create (programul va întreba ce să facă dacă apar conflicte de nume):
$ exiv2 -t rename *.jpg

Găsirea dublurilor de fișiere

  • Linux.png FSlint Utilitar pentru Linux (simplu de utlizat, are interfață grafică)
  • Linux.png Macosx.png În Linux sau OS X (sau cu perl și 'sum'), puteți găsi dublurile fișierelor cu ajutorul find_dup.
  • Linux.png Macosx.png În Linux sau OS X , md5sum poate fi utilizat pentru a găsi dublurile de fișiere (sau chiar utlizarea md5sum doare pentru primii x biți).

În acest exemplu vom verifica doar primii 80k din 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

Fiecare sumă de control (checksum) este unică - nu sunt dubluri.

  • Win.png În Windows puteți utiliza fc pentru a găsi dubluri - următorul fișier batch (nu funcționează pe Win9x/ME) vă poate ajuta: --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
  • În Windows puteți adăuga un "/r" (fără ghilimele) după cele două cuvinte "for" din fișierul de mai sus.
  • În Unix puteți utiliza fdupes și următorul script pentru a genera un script shell cu argumente „rm” pentru a șterge toate dublurile:
#!/bin/sh
OUTF='rm-dups.sh'

if [ -e $OUTF ]; then
  echo "File $OUTF already exists."
  exit 1;
fi

echo "#!/bin/sh" > $OUTF
fdupes -r -f . | sed -r 's/(.+)/rm \"&\"/' >> $OUTF
chmod +x $OUTF

MP3, Ogg vorbis...

Majoritatea fișierelor mp3 și ogg au informații incluse despre titlu, album și autor. Puteți utiliza EasyTag pentru a le redenumi automat pe baza acestor informații.

MS Office

  • Pentru a citi un fișier MS Office corupt (doc/xls/ppt/...) pe care MS Office nu-l poate citi, puteți încerca OpenOffice sau LibreOffice - suite office multi-platformă, cu sursă deschisă, și comparabile cu MS Office. Pot fi descărcate, utilizate și redistribuite liber.
  • Unele documente MS Office (xls/ppt/...) pot fi recuperate dacă sunt redenumite cu o extensie Word .doc extension.

MS Outlook

  • Pentru recuperarea unui fișier Outlook PST încercați Scanpst de la Microsoft.