giovedì 15 ottobre 2009

Nomi dei file dopo la formattazione...come mai?

Se si formatta un disco o una pendrive usb, per esempio NTFS, sia con formattazione lenta sia con quella veloce, viene ricreata la MFT (Master File Table), giusto?
I file non vengono cancellati, spariscono alla vista, solo perchè non v'è più un indice, una MFT, che dice al file system dove sono e come si chiamano, ergo usiamo il carving ,(tecnica che non tiene conto del file system), per recuperarli...peccato che si perdono i nomi ed i metadati (data ed ora,e cc.)...giusto?
Non c'è più modo per riavere i nomi dei file, perchè non c'è più MFT che li conserva, essa è stata sovrascritta dalla nuova MFT e tutte le MFT si allocano all'inizio del disco.
Ma come fa RECUVA o R-Studio a recuperare i nomi dei file, ora e date???


L'ho provato su una chiavetta formattata 2 volte, una veloce ed una lenta e poi anche formattando da Linux e comunque riesco a ritrovare alcuni file con il loro nome:




Ho provato con R-Studio ed anche lui ci riesce...solo che ho notato che recupera alcuni metafile della MFT tipo $MFTMirr, $MFTReconstructed, $AttrDef, $Bitmap, $Upcase, $MFT, $Logfile, $Boot che non sono a "0".



Quindi la spiegazione è che in qualche maniera questi metafile non sono stati sovrascritti con quelli nuovi del nuovo filesystem NTFS quando si formatta...però è strano!


Allora ho voluto provare a "scavare", per capire meglio ed ecco cosa ho ricavato:

strings -a -t d -e l /dev/sdb (ricavo le stringhe contenute nel dispositivo)
...
...
42281714 Dl3.jpg
42282738 Dl4.jpg
42282858 15062008013.jpg
42283762 190820~2.JPGjpg0
42283882 19082008023.jpg
42284786 190820~3.JPGjpg0
42284906 19082008024.jpg
42285810 NANNIR~1.JPGa640
42285930 nanniricciola640.jpg
42286834 NANNIL~1.JPGjpg0
42286954 nannileccia.jpg
...
etc.

Guardo con l'editor esadecimale l'offset in byte 42286954 corrispondente a quello riferito alla stringa: nannileccia.jpg




xxd -s 42286954 -l 512 /dev/sdb
2853f6a: 6e00 6100 6e00 6e00 6900 6c00 6500 6300 n.a.n.n.i.l.e.c.
2853f7a: 6300 6900 6100 2e00 6a00 7000 6700 8000 c.i.a...j.p.g...
2853f8a: 0000 4800 0000 0100 0000 0000 0400 0000 ..H.............
2853f9a: 0000 0000 0000 9f01 0000 0000 0000 4000 ..............@.
2853faa: 0000 0000 0000 0040 0300 0000 0000 8e3f .......@.......?
2853fba: 0300 0000 0000 8e3f 0300 0000 0000 22a0 .......?......".
2853fca: 0165 2800 0100 ffff ffff 8279 4711 0000 ..........e(........yG...
2853fda: 0000 0000 0000 0000 0000 0000 0000 0000 ................
2853fea: 0000 0000 0000 0000 0000 0000 0000 0000 ................
2853ffa: 0000 0000 0b00 0000 0000 0000 0000 0000 ................
285400a: 0000 0000 0000 0000 0000 0000 0000 0000................

Provo a cerca se corrisponde ad un i-node (prova idiota lo so! ma visto che ci siamo ; - ) )


(42286954 - 0)/512 = 82591 (dato che la partizione inizia dal settore 0 ed il cluster size è di 512 bytes)


ifind -f ntfs -o 0 -d 82591 /dev/sdb
Inode not found

Quindi i nomi file ci sono sulla pendrive, ma non sono contenuti in file allocati (giustamente dico io), ma i programmi come Recuva, Get Data Back o R-Studio riescono a riassociare questi nomi file buttati nello spazio del disco formattato con i file presenti e quindi ricostruire l'associazione file - metadato.
Come facciano...bho?
Con Autopsy chiaramente non risultano file cancellati e con una ricerca per DATA UNIT, inserendo il valore 82591, si ottiene la visualizzazione grezza di quel cluster, contenente la stringa "nannileccia.jpg".



Bhè spero sia argomento interessante ;)
Attendo Vs. suggerimenti


Nanni Bassetti

lunedì 5 ottobre 2009

Sgamare le JPGs alterate

Ciao a tutti,
leggevo questo:
http://www.wired.com/threatlevel/2007/08/researchers-ana/
ed ho scaricato il sorgente in C++, quando l'ho compilato ha dato errore, ho corretto l'errore (un INT che doveva diventare un FLOAT e un newline a fine codice), ho ricompilato ed ora funziona bene:

L'ho messo ha disposizione di tutti voi QUI:

Jpegquality.zip

Sgamare le JPGs alterate

Ciao a tutti,
leggevo questo:
http://www.wired.com/threatlevel/2007/08/researchers-ana/
ed ho scaricato il sorgente in C++, quando l'ho compilato ha dato errore, ho corretto l'errore (un INT che doveva diventare un FLOAT e un newline a fine codice), ho ricompilato ed ora funziona bene: 
L'ho messo ha disposizione di tutti voi QUI: