Τι είναι ένα αρχείο DOC;
Τα αρχεία με επέκταση .doc αντιπροσωπεύουν έγγραφα που δημιουργούνται από το Microsoft Word ή άλλα έγγραφα επεξεργασίας κειμένου σε δυαδική μορφή αρχείου. Η επέκταση χρησιμοποιήθηκε αρχικά για τεκμηρίωση απλού κειμένου σε πολλά διαφορετικά λειτουργικά συστήματα. Μπορεί να περιέχει πολλούς διαφορετικούς τύπους δεδομένων, όπως εικόνες, μορφοποιημένα καθώς και απλό κείμενο, γραφήματα, γραφήματα, ενσωματωμένα αντικείμενα, συνδέσμους, σελίδες, μορφοποίηση σελίδας, ρυθμίσεις εκτύπωσης και πολλά άλλα. Η μορφή ήταν δημοφιλής για όλα τα είδη τεκμηρίωσης λόγω της ποικιλίας των επιλογών που προσφέρει στους χρήστες για τη σύνταξη εγχειριδίων, προτάσεων, προδιαγραφών, βιογραφικών, άρθρων ή οποιωνδήποτε παρόμοιων εγγράφων. Η ενημερωμένη έκδοση του DOC είναι DOCX που βασίζεται στο Office OpenXML του οποίου οι προδιαγραφές είναι ανοιχτά διαθέσιμες.
Σύντομη Ιστορία
Το WordPerfect, ένα προϊόν της Corel, χρησιμοποίησε το DOC ως επέκταση της ιδιόκτητης μορφής τους. Στη δεκαετία του 1980, το WordPerfect παρέμεινε η επιλογή χρήσης στους περισσότερους υπολογιστές λόγω της εύκολης διαθεσιμότητάς του, της συμμόρφωσής του με τα περισσότερα μηχανήματα υπολογιστών και τα λειτουργικά συστήματα. Ωστόσο, το WordPerfect είδε την πτώση του στο λειτουργικό σύστημα Windows όταν η Microsoft εισήγαγε το Microsoft Word ως προϊόν της για τη μορφή αρχείου εγγράφων και επέλεξε την επέκταση DOC για την ιδιόκτητη μορφή τους. Καθώς το Microsoft Word γινόταν όλο και πιο δημοφιλές, η μορφή αρχείου DOC υποβλήθηκε σε αρκετές αναθεωρήσεις από το Microsoft Word 97 - 2003. Ήταν 2007 όταν η προεπιλεγμένη μορφή αρχείου DOC αντικαταστάθηκε από τη μορφή του Office Open XML (γνωστή ως DOCX) και τις νέες εκδόσεις του Το Microsoft Word χρησιμοποιεί τώρα αυτήν τη νέα επέκταση ως προεπιλεγμένη μορφή αρχείου.
Προδιαγραφές μορφής αρχείου DOC - Περισσότερες πληροφορίες
Η Microsoft δεν κυκλοφόρησε τις προδιαγραφές μορφής αρχείου DOC για μεγάλο χρονικό διάστημα μέχρι το 2008. Τον Φεβρουάριο του 2008, κυκλοφόρησαν προδιαγραφές μορφής για τη μορφή αρχείου .doc στο πλαίσιο της Υπόσχεσης Open Specification Promise της Microsoft. Αν και η προδιαγραφή δεν περιγράφει όλες τις δυνατότητες που χρησιμοποιούνται από τη μορφή DOC, παρέχει άφθονες πληροφορίες σχετικά με τις γνώσεις που απαιτούνται για την εργασία με αυτήν τη μορφή αρχείου. Ωστόσο, απαιτείται αντίστροφη μηχανική για να γίνει χρήση των διαθέσιμων πληροφοριών. Οι προδιαγραφές έχουν ενημερωθεί αρκετές φορές και η τελευταία αναθεώρηση είναι 8.0 η οποία ενημερώθηκε από τον Αύγουστο του 2018 .
Μερικές θεμελιώδεις έννοιες
Πριν προχωρήσουμε σε οποιεσδήποτε λεπτομέρειες σχετικά με τις προδιαγραφές μορφής αρχείου για το DOC, είναι απαραίτητο να κατανοήσουμε ορισμένες θεμελιώδεις έννοιες για να εργαστείτε με αυτήν τη μορφή αρχείου.
Βάση πληροφοριών αρχείου (Fib): Η δομή Fib περιέχει πληροφορίες για το έγγραφο και καθορίζει τους δείκτες αρχείου σε διάφορα τμήματα που αποτελούν το έγγραφο. Το Fib είναι μια δομή μεταβλητού μήκους. Με εξαίρεση το τμήμα βάσης που είναι σταθερό σε μέγεθος, πριν από κάθε τμήμα υπάρχει ένα πεδίο μέτρησης που καθορίζει το μέγεθος του επόμενου τμήματος.
Θέση χαρακτήρων: Το CP ή η Θέση χαρακτήρων αντιπροσωπεύει έναν ανυπόγραφο ακέραιο αριθμό 32 bit που χρησιμεύει ως το μηδενικό ευρετήριο ενός χαρακτήρα στο κείμενο του εγγράφου. Η θέση και το μέγεθος κάθε χαρακτήρα στο αρχείο δεν μπορούν να ανακτηθούν απευθείας και πρέπει να υπολογιστούν χρησιμοποιώντας προκαθορισμένο αλγόριθμο. Οι χαρακτήρες περιλαμβάνουν:
- Κείμενο του εγγράφου
- Αγκυρώσεις αντικειμένων όπως υποσημειώσεις ή πλαίσια κειμένου
- Χαρακτήρες ελέγχου, όπως σημάδια παραγράφου και σημάδια κελιών πίνακα
PLC: Η δομή PLC είναι μια σειρά από CP ακολουθούμενη από μια σειρά στοιχείων δεδομένων. Τα στοιχεία δεδομένων για οποιοδήποτε PLC πρέπει να έχουν το ίδιο μέγεθος μηδέν ή περισσότερων byte και για αυτόν τον λόγο, ο αριθμός των CP πρέπει να είναι ένα μεγαλύτερος από τον αριθμό των στοιχείων δεδομένων. Οι δομές PLC είναι διαφορετικών τύπων όπου κάθε τύπος καθορίζει εάν επιτρέπονται διπλότυπα CP για αυτόν τον τύπο ή όχι. Μια δομή PLC αποτελείται από:
- aCP (μεταβλητό μήκος): Μια συστοιχία στοιχείων CP. Κάθε τύπος δομής PLC καθορίζει τη σημασία των στοιχείων CP και την επιτρεπόμενη περιοχή.
- aData (μεταβλητό μήκος): Κάθε τύπος δομής PLC καθορίζει τη δομή και τη σημασία των στοιχείων δεδομένων, τυχόν περιορισμούς στον αριθμό των στοιχείων δεδομένων και τυχόν περιορισμούς στα δεδομένα που περιέχονται σε αυτά. Καθορίζει επίσης τη σχέση μεταξύ των στοιχείων δεδομένων και των αντίστοιχων CP.
Έγκυρη επιλογή: Οι κατασκευές αρχείων .DOC περιγράφονται κυρίως από μια σειρά από CP. Υπάρχει ένας αριθμός κανόνων που καθορίζονται από τη Microsoft που πρέπει να τηρούνται σε αυτήν την περίπτωση.
STTB: Το STTB είναι ένας πίνακας συμβολοσειρών που αποτελείται από μια κεφαλίδα που ακολουθείται από έναν πίνακα στοιχείων. Η τιμή cData καθορίζει τον αριθμό των στοιχείων που περιέχονται στον πίνακα.
Αποθήκευση ιδιοτήτων: Ένα αρχείο word μπορεί να έχει διαφορετικά στοιχεία, όπως κείμενο, παραγράφους, πίνακες, εικόνες και ενότητες όπου το καθένα μπορεί να έχει τις δικές του ιδιότητες. Οι ιδιότητες αυτών αποθηκεύονται στο αρχείο Word ως διαφορές από τις προεπιλεγμένες. Τέτοιες διαφορές καθορίζονται από το PRl που αποτελείται από έναν Τροποποιητή Ενιαίας Ιδιότητας (Sprm) και τον τελεστή του. Μια εφαρμογή μπορεί να καθορίσει το τελικό σύνολο ιδιοτήτων με εφαρμογή λιστών Prls.
Προστασία με κωδικό πρόσβασης: Τα αρχεία Word μπορούν επίσης να προστατεύονται με κωδικό πρόσβασης, για το οποίο μπορεί να χρησιμοποιηθεί ένας από τους παρακάτω μηχανισμούς.
- Θολότητα XOR
- Κρυπτογράφηση RC4 δυαδικού εγγράφου του Office
- Κρυπτογράφηση δυαδικού εγγράφου Office RC4 CryptoAPI
Εάν το FibBase.fEncrypted και το FibBase.fObfuscation είναι και τα δύο 1, το αρχείο θολώνεται χρησιμοποιώντας τη συσκότιση XOR.
Εάν το FibBase.fEncrypted είναι 1 και το FibBase.fObfuscation είναι 0, το αρχείο κρυπτογραφείται χρησιμοποιώντας είτε το Office Binary Document RC4 Encryption είτε το Office Binary Document RC4 CryptoAPI Encryption, με το EncryptionHeader να είναι αποθηκευμένο στην πρώτη ροή FibBase.lKey από τα bytes TKey. Το EncryptionHeader.EncryptionVersionInfo καθορίζει ποιος μηχανισμός κρυπτογράφησης χρησιμοποιήθηκε για την κρυπτογράφηση του αρχείου.
Δομή αρχείου
Ένα δυαδικό αρχείο Word στην πρωτοτυπία του είναι ένα σύνθετο αρχείο OLE που αποτελείται από πολλούς χώρους αποθήκευσης και ροές. Αυτές οι αποθήκες και τα ρεύματα έχουν τη δική τους δομή και μεγέθη, που καθορίζουν τις παραμέτρους για τη γραφή και την ανάγνωση. Αυτά είναι:
Ροή WordDocument
Αυτή η ροή περιέχει το κείμενο του εγγράφου και άλλες πληροφορίες που αναφέρονται από άλλα μέρη του αρχείου. Η ροή δεν έχει προκαθορισμένη δομή εκτός από το FIB στην αρχή, η οποία είναι υποχρεωτική και θα πρέπει να είναι σε μετατόπιση 0. Αυτή η ροή δεν πρέπει να είναι μεγαλύτερη από 2147 MB.
1TableStream ή 0TableStream
Ένα δυαδικό αρχείο Word μπορεί να περιέχει Ροές πίνακα γνωστών ως Ροή 1Πίνακα ή Ροή 0Πίνακα. Τουλάχιστον ένα από αυτά πρέπει να υπάρχει στο έγγραφο. Ωστόσο, εάν ένα έγγραφο περιέχει ροές 1Table και 0Table, χρησιμοποιείται μόνο η ροή που αναφέρεται από το base.fWhichTblStm. Η ροή χωρίς αναφορά ΠΡΕΠΕΙ να αγνοηθεί. Το Table Stream ΔΕΝ ΠΡΕΠΕΙ να είναι μεγαλύτερο από 2147 MB.
Ροή δεδομένων
Η ροή δεδομένων δεν έχει προκαθορισμένη δομή. Περιέχει δεδομένα που αναφέρονται από το FIB ή από άλλα μέρη του αρχείου. Αυτή η ροή δεν χρειάζεται να υπάρχει εάν δεν υπάρχουν αναφορές σε αυτήν. Η ροή δεδομένων ΔΕΝ ΠΡΕΠΕΙ να είναι μεγαλύτερη από 2147 MB.
Αποθήκευση πισίνας αντικειμένων
Ο χώρος αποθήκευσης Object Pool περιέχει αποθηκευτικούς χώρους για ενσωματωμένα αντικείμενα OLE. Αυτή η αποθήκευση δεν χρειάζεται να υπάρχει εάν δεν υπάρχουν ενσωματωμένα αντικείμενα OLE στο έγγραφο.
Προσαρμοσμένη αποθήκευση δεδομένων XML
Η προσαρμοσμένη αποθήκευση δεδομένων XML είναι μια προαιρετική αποθήκευση του οποίου το όνομα ΠΡΕΠΕΙ να είναι “MsoDataStore”.
Συνοπτική ροή πληροφοριών
Η ροή Summary Information είναι μια προαιρετική ροή της οποίας το όνομα ΠΡΕΠΕΙ να είναι “\005SummaryInformation”, όπου \005 είναι ο χαρακτήρας με τιμή 0x0005 και όχι η κυριολεκτική συμβολοσειρά “\005”.
Ροή πληροφοριών περίληψης εγγράφου
Η ροή πληροφοριών περίληψης εγγράφου είναι μια προαιρετική ροή της οποίας το όνομα ΠΡΕΠΕΙ να είναι “\005DocumentSummaryInformation”, όπου \005 είναι ο χαρακτήρας με τιμή 0x0005, όχι η κυριολεκτική συμβολοσειρά “\005”.
Ροή κρυπτογράφησης
Η ροή κρυπτογράφησης είναι μια προαιρετική ροή της οποίας το όνομα ΠΡΕΠΕΙ να είναι “κρυπτογράφηση”. Αυτή η ροή ΔΕΝ ΠΡΕΠΕΙ να υπάρχει εκτός εάν πληρούνται και οι δύο ακόλουθες προϋποθέσεις:
- Το έγγραφο είναι κρυπτογραφημένο με κρυπτογράφηση Office Binary Document RC4 CryptoAPI.
- Η τιμή fDocProps ορίζεται στο EncryptionHeader.Flags.
Αποθήκευση μακροεντολών
Η αποθήκευση μακροεντολών είναι μια προαιρετική αποθήκευση που περιέχει τις μακροεντολές για το αρχείο. Εάν υπάρχει, ΠΡΕΠΕΙ να είναι ένα Project Root Storage.
Αποθήκευση υπογραφών XML
Ο χώρος αποθήκευσης υπογραφών XML είναι ένας προαιρετικός χώρος αποθήκευσης του οποίου το όνομα ΠΡΕΠΕΙ να είναι “_xmlsignatures”.
Ροή υπογραφών
Η ροή υπογραφών είναι μια προαιρετική ροή της οποίας το όνομα ΠΡΕΠΕΙ να είναι “_signatures”. Αυτή η ροή περιέχει ψηφιακές υπογραφές.
Διαχείριση δικαιωμάτων πληροφοριών Αποθήκευση χώρου δεδομένων
Ο χώρος αποθήκευσης δεδομένων διαχείρισης δικαιωμάτων πληροφοριών είναι ένας προαιρετικός χώρος αποθήκευσης του οποίου το όνομα ΠΡΕΠΕΙ να είναι “\006DataSpaces”, όπου \006 είναι ο χαρακτήρας με τιμή 0x0006 και όχι η κυριολεκτική συμβολοσειρά “\006”. Εάν υπάρχει αυτός ο χώρος αποθήκευσης, ΠΡΕΠΕΙ να υπάρχει και η Ροή Προστατευμένου Περιεχομένου. Εάν υπάρχει αυτός ο αποθηκευτικός χώρος, όλες οι καθορισμένες ροές και αποθηκευτικοί χώροι εκτός από αυτόν τον αποθηκευτικό χώρο και τη Ροή Προστατευμένου Περιεχομένου ΠΡΕΠΕΙ να διαβάζονται από τη Ροή Προστατευμένου Περιεχομένου όπως ορίζεται στο [MS-OFFCRYPTO] και εάν κάποια από αυτές τις ροές και αποθηκευτικούς χώρους υπάρχει εκτός του Προστατευμένου Περιεχομένου Stream, ΠΡΕΠΕΙ να αγνοηθούν.
Ροή προστατευμένου περιεχομένου
Η Ροή Προστατευμένου Περιεχομένου είναι μια προαιρετική ροή της οποίας το όνομα ΠΡΕΠΕΙ να είναι “\009DRMCcontent”, όπου \009 είναι ο χαρακτήρας με τιμή 0x0009 και όχι η κυριολεκτική συμβολοσειρά “\009”. Εάν υπάρχει αυτή η ροή, ΠΡΕΠΕΙ επίσης να υπάρχει και το Data Management Data Space Storage.
Βιβλιογραφικές αναφορές
See Also
- OTS - Μορφή αρχείου προτύπου υπολογιστικού φύλλου OpenDocument
- XLR - Μορφή αρχείου υπολογιστικού φύλλου Microsoft Works
- Σημείωση - Μορφή αρχείου σημειωματάριου Mathematica
- Τι είναι η μορφή αρχείου Lotus 123; Μάθετε από τους ειδικούς σε μορφή αρχείου!
- Τι είναι η μορφή αρχείου XLS; Μάθετε από τους ειδικούς μορφοποίησης αρχείων!