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"

The article sfdumper e iterazioni multiple has been posted by Luca Ferrari on January 2, 2011

Tags: linux