Luego De Usar 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ă


Puede ser difícil ordenar los archivos recuperados por PhotoRec. Aquí encontrará algunas ideas para ayudarlo en este proceso.

Ordenar archivos por extensión

  • Se puede usar este Script de Python para ordenar los archivos encontrados por extensión:
  • Guardar el siguiente código como un archivo (recovery.py) y luego ejecutarlo con el parámetro 'source' & 'destination'

Ejemplo: $ 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)

Jpeg

  • Los modelos PowerShot de Canon guardan su número de secuencia en el dato Exif, así que usando un programa que pueda extraer los datos Exif a texto, como el jhead, y el siguiente Script de Perl, puede esencialmente recuperar todos los archivos JPG a sus nombres originales. --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;
                }
        }
}
  • El siguiente es un archivo Batch para Windows que recrea la estructura de directorios original y los nombres de archivos presentes en la tarjeta de memoria (para cámaras Canon, probado con una cantidad importante de fotografías de una EOS20D), usando el número de archivo de la información EXIF (usando a su vez ExifTool, de manera similar al script anterior).

--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

Quitar la basura (invisible) al final de una imagen recuperada

  • En Linux, para las extensiones que ImageMagick puede comprender, para remover la basura al final de un archivo, se puede ejecutar algo como
for file in recup_dir*/*; do convert $file $file; done
  • En Linux (ó con Perl y 'convert'), se puede automatizar lo antedicho con un un loop "for", así como otras tantas tareas de procesamiento batch con fix_img

Encontrando duplicados

  • En Linux, md5sum puede ser usado para encontrar archivos duplicados, quizás solamente aplicando el hash a los primeros "n" bytes

En este ejemplo, chequeamos los primeros 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

Cada checksum es únivoco, no hay posibilidad de duplicados (es decir, la posibilidad es ínfima)

  • En Linux (ó con Perl y 'sum'), se pueden encontrar duplicados en una jerarquía usando find_dup ó finddup de fslint.
  • En Windows se puede usar la utilidad fc para encontrar duplicados, el siguiente archivo Batch (no funciona en Win9x/ME) puede ayudar:

--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
  • En Windows puede agregar una "/r" (sin las comillas) luego de ambos "fors" en el archivo batch anterior.
  • En sistemas Unix, puede utilizar fdupes y el siguiente script para generar un script de shell con sentencias rm (remove) para eliminar todos los archivos duplicados:
#!/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 \1/' >> $OUTF
chmod +x $OUTF

MP3, Ogg vorbis...

La mayoría de los mp3 y archivos ogg tienen información embebida sobre el Título, Album y Autor. Puede usar EasyTag para automáticamente renombrar los MP3 recuperados usando esta información.

MS Office

  • Para leer archivos de Office dañados (doc/xls/ppt/...) que MS Office no puede leer, puede intentar utilizar OpenOffice. OpenOffice.org es una suite de Oficina multiplataforma y multiidioma, además de ser un proyecto open-source. Es compatible con la mayoría de las suites de Office de Microsoft. El producto es de libre descarga, uso y distribución.
  • Algunos documentos de MS Office (xls/ppt/...) pueden ser convertidos a Word (DOC) al ser recuperados, simplemente cambie su extensión de DOC a la que corresponda.

MS Outlook

  • Para recuperar archivos de Outlook (PST) puede intentar utilizar la herramienta Scanpst.