sfdumper è un ottimo programma scritto interamente come script shell per il recupero selettivo di file da una immagine (anche raw) di un disco o di una partizione, e fa parte della toolbox per l'analisi forense dei sistemi digitali. Durante il suo utilizzo ho notato che, nel caso di iterazioni ripetute sulla stessa immagine, i file eliminati non sono relativi al tipo della ricerca in corso, ma contengono l'intera lista dei file già trovati nei passaggi precedenti. Sembra quasi che i file eliminati siano tenuti in una lista in solo append. Per evitare il problema, il seguente semplice script shell lanciato con un solo parametro che è la directory contenitore dei dati recuperati permette di eliminare i file cancellati ed erroneamenti recuperati multiple volte dentro a directory che dovrebbe contenere file di altro tipo.
#!/bin/bash # controllo parametri if [ $# -le 0 ] then echo "Usage: $0" exit 1 fi # si entra nella directory di partenza per il recupero cd $1 ERASED=0 for d in * do # salto tutto cio' che non e' una directory if [ ! -d "$d" ] then echo "Salto la non directory $d" continue fi DIR_NAME="$d" # salto le directory speciali TMP e report if [ "$DIR_NAME" == "tmp" -o "$DIR_NAME" == "report" ] then echo "Salto le directory speciali ($DIR_NAME)" continue fi FILE_TYPE=`echo $DIR_NAME | awk -F '_' '{print $2;}' ` echo "Entro in $DIR_NAME per eliminare i file che non sono $FILE_TYPE" cd "$DIR_NAME" for d2 in * do if [ -d "$d2" ] then cd $d2 for f in * do if [ -f $f ] then case $f in *${FILE_TYPE}) ;; *) echo "Cancellazione di $f da $DIR_NAME" rm $f ERASED=$(( ERASED + 1 )) ;; esac fi done cd .. fi done cd .. done echo "File eliminati $ERASED"
Nessun commento:
Posta un commento