Δημοσιεύτηκε: 13 Δεκ 2009, 21:02
Στο man page του foremost λέει ότι μπορείς να ορίσεις το τύπο αρχείου που ψάχνεις μεσω του header του και του ονόματος του
Τα mp3 δεν είναι όλα ίδια ακριβώς αλλά έχουν το δικό τους pattern .. . Εξαρτάται από διάφορους παράγοντες
Πιθανόν αν τα αρχεία τα έκανε κάποιος encode με ένα συγκεκριμένο τρόπο θα έχουν όλα κάτι κοινό στο header ...
Τουλάχιστον αν τα αρχεία mp3 έχουν ID3 tags θα έχουν κάτι κοινό...
Τα ID3 tags σε αρχεία που είναι για streaming μπαίνουν στην αρχή του αρχείου ώστε να ξέρει το όνομα ο player που συνδέεται με τον streaming server
αλλά δεν μπαίνουν πάντα στην αρχή μπαίνουν και στο τέλος... εξαρτάται από αυτόν που θα τα κάνει encode...
Τα id3 tags περιέχουν frames με το όνομα του πχ καλλιτέχνη και άλλα δεδομένα...
πάντως όπου και να είναι είτε στην αρχή είτε στο τέλος μπορούν να εντοπιστούν αν υπάρχουν
Θα εξηγήσω,
για παράδειγμα:
σε ένα φάκελο τα headers αρχείων ήχου αναγνωρίζονται από την ύπαρξη και μόνο του ID3 tag τους το οποίο είναι ένα ομοιόμορφο ένα κοινό pattern σε όλα
πχ σε ένα φάκελο με αρχεία mp3 που έγιναν encode με το ίδιο πρόγραμμα με τις ίδιες παραμέτρους έκανα
και πήρα
αυτά τώρα με το foremost ( αλλά και με άλλα προγράμματα ) γίνεται στο configutation αρχείο τους να δώσεις
το header το hex pattern ας πούμε καθώς έιναι στάνταρντ
δηλαδή
το 49 44 33 03 00 00 00 00 0c 40 54 50 45 31 00 00 η σε δεκαεξαδική αναπαράσταση για το foremost.conf
πχ
\x49\x44\x33\x03\x00\x00\x00\x00\x0c\x40\x54\x50\x45\x31\x00\x00
προφανώς για παραπέρα bytes κάθε αρχείο είναι διαφορετικό από το άλλο και δεν μας αφορα.
Σε κάποια άλλα αρχεία mp3 που έχω πχ διαφέρουν αλλα το 49 44 33 είναι στάνταρτ (λόγω του ID3 )
πχ
Στο /etc/foremost/conf
έχει πχ για τις png εικόνες σε comments
πχ το
δίνει
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
και το
δίνει
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
Στο /etc/foremost.conf δίνει παραδείγματα για την σύνταξη που θέλει το αρχείο που θα χρησιμοποιήσει κανείς για να βρεί τα αρχεία του
Είναι δυνατόν να προσθέσεις και διαφορετικά headers να καθορίζουν το ίδιο format
πχ όπως βλέπετε στο foremost.conf
λέει για τα MPEG video 3 περιπτώσεις
επίσης το footer (δεξιά ) είναι προαιρετικό
το μέγεθος του αρχείου που δίνεις είναι το μέγιστο που μπορεί να πιάσει στο mpeg έχει για παράδειγμα 20000000 bytes ~= 19 MB
δηλαδή προφανώς για μια εικόνα δεν θα βάλει κανείς να ψάχνει για αρχεία του ενός GB
για τα mp3 έχει κάποια παραδείγματα σε comments (
δοκίμασε κανείς να βγάλει τα comments να δει αν πιάνει καθόλου
)
για όσα formats γράφει από πάνω
(NOTE THIS FORMAT HAS A BUILTIN EXTRACTION FUNCTION)
σημαίνει ότι τα βρίσκει από μόνο του ... στα αρχεία ήχου βρίσκει δηλαδή από μόνο του μόνο τα WAV αρχεία...
Τα αρχεία του lmms τα mmpz για παράδειγμα έχουν το 78 9c στο 5ο byte
πχ
00000000 00 02 b0 6a 78 9c ed 5d 6b 8f e3 38 76 fd 3e bf |...jx..]k..8v.>.|
και
00000000 00 00 5d 5e 78 9c dd 9c 6d 8f db c6 11 c7 df fb |..]^x...m.......|
άρα η σύνταξη για το foremost.conf είναι:
όπως βλέπετε η γραμμή που μας ενδιαφέρει δεν έχει comments
Δηλαδή με την παράμετρο -t αφού φτιάξει σωστά το foremost.conf
γίνεται να βρει κανείς τα mp3 του ειδικά αν ξέρει αν είχαν ID3 TAGS με το foremost
καθώς έχουν κάτι κοινό
πολλά μπορούν να γίνουν με τις κατάλληλες αλλαγές στο foremost.conf
Περισσότερα στο
http://en.wikipedia.org/wiki/ID3
http://www.forensicfocus.com/familiar-i ... c-analysis
http://www.mp3-converter.com/mp3codec/id3.htm
http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
και
- Κώδικας: Επιλογή όλων
man foremost | grep -A 18 " CONFIGURATION FILE"
Spoiler: show
Τα mp3 δεν είναι όλα ίδια ακριβώς αλλά έχουν το δικό τους pattern .. . Εξαρτάται από διάφορους παράγοντες
Πιθανόν αν τα αρχεία τα έκανε κάποιος encode με ένα συγκεκριμένο τρόπο θα έχουν όλα κάτι κοινό στο header ...
Τουλάχιστον αν τα αρχεία mp3 έχουν ID3 tags θα έχουν κάτι κοινό...
Τα ID3 tags σε αρχεία που είναι για streaming μπαίνουν στην αρχή του αρχείου ώστε να ξέρει το όνομα ο player που συνδέεται με τον streaming server
αλλά δεν μπαίνουν πάντα στην αρχή μπαίνουν και στο τέλος... εξαρτάται από αυτόν που θα τα κάνει encode...
Τα id3 tags περιέχουν frames με το όνομα του πχ καλλιτέχνη και άλλα δεδομένα...
πάντως όπου και να είναι είτε στην αρχή είτε στο τέλος μπορούν να εντοπιστούν αν υπάρχουν
Θα εξηγήσω,
για παράδειγμα:
σε ένα φάκελο τα headers αρχείων ήχου αναγνωρίζονται από την ύπαρξη και μόνο του ID3 tag τους το οποίο είναι ένα ομοιόμορφο ένα κοινό pattern σε όλα
πχ σε ένα φάκελο με αρχεία mp3 που έγιναν encode με το ίδιο πρόγραμμα με τις ίδιες παραμέτρους έκανα
- Κώδικας: Επιλογή όλων
for i in *.mp3; do hexdump -C -n 16 $i;echo; done
και πήρα
Spoiler: show
αυτά τώρα με το foremost ( αλλά και με άλλα προγράμματα ) γίνεται στο configutation αρχείο τους να δώσεις
το header το hex pattern ας πούμε καθώς έιναι στάνταρντ
δηλαδή
το 49 44 33 03 00 00 00 00 0c 40 54 50 45 31 00 00 η σε δεκαεξαδική αναπαράσταση για το foremost.conf
πχ
\x49\x44\x33\x03\x00\x00\x00\x00\x0c\x40\x54\x50\x45\x31\x00\x00
προφανώς για παραπέρα bytes κάθε αρχείο είναι διαφορετικό από το άλλο και δεν μας αφορα.
Σε κάποια άλλα αρχεία mp3 που έχω πχ διαφέρουν αλλα το 49 44 33 είναι στάνταρτ (λόγω του ID3 )
πχ
- Κώδικας: Επιλογή όλων
00000000 49 44 33 04 00 00 00 00 00 16 54 45 4e 43 00 00 |ID3.......TENC..|
- Κώδικας: Επιλογή όλων
00000000 49 44 33 03 00 00 00 00 12 47 54 4c 41 4e 00 00 |ID3......GTLAN..|
- Κώδικας: Επιλογή όλων
00000000 49 44 33 03 00 00 00 01 3f 76 54 41 4c 42 00 00 |ID3.....?vTALB..|
Στο /etc/foremost/conf
έχει πχ για τις png εικόνες σε comments
- # PNG (used in web pages)
# (NOTE THIS FORMAT HAS A BUILTIN EXTRACTION FUNCTION)
# png y 200000 \x50\x4e\x47? \xff\xfc\xfd\xfe
πχ το
- Κώδικας: Επιλογή όλων
hexdump -C -n 16 .qdvdauthor/history1.png
δίνει
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
και το
- Κώδικας: Επιλογή όλων
hexdump -C -n 16 ./Firefox_wallpaper.png
δίνει
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
Στο /etc/foremost.conf δίνει παραδείγματα για την σύνταξη που θέλει το αρχείο που θα χρησιμοποιήσει κανείς για να βρεί τα αρχεία του
πχ όπως βλέπετε στο foremost.conf
λέει για τα MPEG video 3 περιπτώσεις
- Κώδικας: Επιλογή όλων
# MPEG Video
# mpg y 4000000 mpg eof
# mpg y 20000000 \x00\x00\x01\xba \x00\x00\x01\xb9
# mpg y 20000000 \x00\x00\x01\xb3 \x00\x00\x01\xb7
επίσης το footer (δεξιά ) είναι προαιρετικό
το μέγεθος του αρχείου που δίνεις είναι το μέγιστο που μπορεί να πιάσει στο mpeg έχει για παράδειγμα 20000000 bytes ~= 19 MB
δηλαδή προφανώς για μια εικόνα δεν θα βάλει κανείς να ψάχνει για αρχεία του ενός GB
για τα mp3 έχει κάποια παραδείγματα σε comments (
για όσα formats γράφει από πάνω
(NOTE THIS FORMAT HAS A BUILTIN EXTRACTION FUNCTION)
σημαίνει ότι τα βρίσκει από μόνο του ... στα αρχεία ήχου βρίσκει δηλαδή από μόνο του μόνο τα WAV αρχεία...
Τα αρχεία του lmms τα mmpz για παράδειγμα έχουν το 78 9c στο 5ο byte
πχ
00000000 00 02 b0 6a 78 9c ed 5d 6b 8f e3 38 76 fd 3e bf |...jx..]k..8v.>.|
και
00000000 00 00 5d 5e 78 9c dd 9c 6d 8f db c6 11 c7 df fb |..]^x...m.......|
άρα η σύνταξη για το foremost.conf είναι:
- Κώδικας: Επιλογή όλων
# Linux multimedia studio files (LMMS) files
mmpz y 1000000 \x78\x9c
#---------------------------------------------------------------------
όπως βλέπετε η γραμμή που μας ενδιαφέρει δεν έχει comments
Δηλαδή με την παράμετρο -t αφού φτιάξει σωστά το foremost.conf
γίνεται να βρει κανείς τα mp3 του ειδικά αν ξέρει αν είχαν ID3 TAGS με το foremost
καθώς έχουν κάτι κοινό
πολλά μπορούν να γίνουν με τις κατάλληλες αλλαγές στο foremost.conf
Περισσότερα στο
http://en.wikipedia.org/wiki/ID3
http://www.forensicfocus.com/familiar-i ... c-analysis
http://www.mp3-converter.com/mp3codec/id3.htm
http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
και
- Κώδικας: Επιλογή όλων
man foremost