डीओसी फाइल क्या है?
.doc एक्सटेंशन वाली फ़ाइलें Microsoft Word या बाइनरी फ़ाइल स्वरूप में अन्य वर्ड प्रोसेसिंग दस्तावेज़ों द्वारा उत्पन्न दस्तावेज़ों का प्रतिनिधित्व करती हैं। विस्तार का उपयोग शुरू में कई अलग-अलग ऑपरेटिंग सिस्टमों पर सादे पाठ प्रलेखन के लिए किया गया था। इसमें कई अलग-अलग प्रकार के डेटा हो सकते हैं जैसे कि चित्र, स्वरूपित और साथ ही सादा पाठ, ग्राफ़, चार्ट, एम्बेडेड ऑब्जेक्ट, लिंक, पृष्ठ, पृष्ठ स्वरूपण, प्रिंट सेटिंग्स और बहुत कुछ। प्रारूप मैनुअल, प्रस्ताव, विनिर्देशों, रिज्यूमे, लेख या किसी भी समान दस्तावेज लिखने के लिए उपयोगकर्ताओं को प्रदान किए जाने वाले विकल्पों की विविधता के कारण सभी प्रकार के दस्तावेज़ों के लिए लोकप्रिय था। DOC का अद्यतन संस्करण DOCX है जो Office OpenXML पर आधारित है जिसके विनिर्देश खुले तौर पर उपलब्ध हैं।
संक्षिप्त इतिहास
WordPerfect, Corel का एक उत्पाद है, जो DOC को अपने मालिकाना प्रारूप के विस्तार के रूप में इस्तेमाल करता है। 1980 के दशक में, WordPerfect अपनी आसान उपलब्धता, अधिकांश कंप्यूटर मशीनों और ऑपरेटिंग सिस्टम के अनुरूप होने के कारण अधिकांश कंप्यूटरों पर उपयोग का विकल्प बना रहा। हालाँकि, WordPerfect ने Windows OS पर अपना पतन देखा जब Microsoft ने Microsoft Word को दस्तावेज़ फ़ाइल प्रारूप के लिए अपने उत्पाद के रूप में पेश किया और अपने मालिकाना प्रारूप के लिए DOC एक्सटेंशन को चुना। जैसे-जैसे Microsoft Word अधिक से अधिक लोकप्रिय होता गया, DOC फ़ाइल स्वरूप में Microsoft Word 97 - 2003 से कई संशोधन हुए। यह 2007 था जब डिफ़ॉल्ट DOC फ़ाइल स्वरूप को Office Open XML प्रारूप (DOCX के रूप में जाना जाता है) और इसके नए संस्करणों द्वारा प्रतिस्थापित किया गया था Microsoft Word अब इस नए एक्सटेंशन का उपयोग डिफ़ॉल्ट फ़ाइल स्वरूप के रूप में करता है।
DOC फ़ाइल स्वरूप निर्दिष्टीकरण - अधिक जानकारी
Microsoft ने 2008 तक लंबे समय तक DOC फ़ाइल प्रारूप विनिर्देशों को जारी नहीं किया। फरवरी 2008 में, Microsoft Open Specification Promise के तहत .doc फ़ाइल स्वरूप के लिए प्रारूप विनिर्देश जारी किए गए थे। हालांकि विनिर्देश डीओसी प्रारूप द्वारा उपयोग की जाने वाली सभी सुविधाओं का वर्णन नहीं करता है, लेकिन यह इस फ़ाइल प्रारूप के साथ काम करने के लिए आवश्यक ज्ञान के बारे में पर्याप्त जानकारी देता है। फिर भी, उपलब्ध जानकारी का उपयोग करने के लिए रिवर्स इंजीनियरिंग की आवश्यकता होती है। विनिर्देशों को कई बार अपडेट किया गया है और नवीनतम संशोधन 8.0 है जिसे अगस्त 2018 तक अपडेट किया गया था .
कुछ मौलिक अवधारणाएं
DOC के लिए फ़ाइल प्रारूप विनिर्देशों के बारे में किसी भी विवरण में जाने से पहले, इस फ़ाइल प्रारूप के साथ काम करने के लिए कुछ मूलभूत अवधारणाओं को समझना आवश्यक है।
फ़ाइल सूचना आधार (Fib): फाइब संरचना में दस्तावेज़ के बारे में जानकारी होती है और दस्तावेज़ बनाने वाले विभिन्न भागों में फ़ाइल पॉइंटर्स को निर्दिष्ट करती है। फाइब एक चर लंबाई संरचना है। आधार भाग के अपवाद के साथ जो आकार में तय होता है, प्रत्येक अनुभाग के पहले एक गणना फ़ील्ड होती है जो अगले खंड के आकार को निर्दिष्ट करती है।
अक्षर स्थिति: CP या वर्ण स्थिति एक अहस्ताक्षरित 32-बिट पूर्णांक का प्रतिनिधित्व करती है जो दस्तावेज़ पाठ में एक वर्ण के शून्य-आधारित सूचकांक के रूप में कार्य करता है। फ़ाइल में प्रत्येक वर्ण का स्थान और आकार सीधे प्राप्त नहीं किया जा सकता है और पूर्व-निर्दिष्ट एल्गोरिथम का उपयोग करके गणना करने की आवश्यकता है। वर्णों में शामिल हैं:
- दस्तावेज़ का पाठ
- ऑब्जेक्ट्स के एंकर जैसे फ़ुटनोट्स या टेक्स्टबॉक्स
- नियंत्रण वर्ण जैसे पैराग्राफ चिह्न और तालिका सेल चिह्न
पीएलसी: पीएलसी संरचना सीपी की एक सरणी है जिसके बाद डेटा तत्वों की एक सरणी होती है। किसी भी पीएलसी के लिए डेटा तत्वों का आकार शून्य या अधिक बाइट्स के समान होना चाहिए, और इस कारण से, सीपी की संख्या डेटा तत्वों की संख्या से एक अधिक होनी चाहिए। पीएलसी संरचनाएं विभिन्न प्रकार की होती हैं जहां प्रत्येक प्रकार निर्दिष्ट करता है कि उस प्रकार के लिए डुप्लिकेट सीपी की अनुमति है या नहीं। एक पीएलसी संरचना में शामिल हैं:
- एसीपी (परिवर्तनीय लंबाई): सीपी तत्वों की एक सरणी। प्रत्येक प्रकार की PLC संरचना CP तत्वों और अनुमत सीमा का अर्थ निर्दिष्ट करती है।
- aData (परिवर्तनीय लंबाई): प्रत्येक प्रकार की PLC संरचना डेटा तत्वों की संरचना और अर्थ, डेटा तत्वों की संख्या पर कोई प्रतिबंध, और उसमें निहित डेटा पर कोई प्रतिबंध निर्दिष्ट करती है। यह डेटा तत्वों और संबंधित सीपी के बीच संबंध को भी निर्दिष्ट करता है।
वैध चयन: .DOC फ़ाइल का निर्माण मुख्य रूप से CPs की एक श्रेणी द्वारा वर्णित किया गया है। ऐसे कई नियम ऐसे मामले में पालन करने के लिए Microsoft द्वारा निर्दिष्ट किए गए हैं।
एसटीटीबी: एसटीटीबी एक स्ट्रिंग टेबल है जो एक हेडर से बना होता है जिसके बाद तत्वों की एक सरणी होती है। cData मान सरणी में निहित तत्वों की संख्या निर्दिष्ट करता है।
प्रॉपर्टी स्टोरेज: एक वर्ड फाइल में टेक्स्ट, पैराग्राफ, टेबल, पिक्चर और सेक्शन जैसे अलग-अलग तत्व हो सकते हैं, जहां हर एक की अपनी प्रॉपर्टी हो सकती है। इनमें से गुण Word फ़ाइल में डिफ़ॉल्ट से अंतर के रूप में संग्रहीत किए जाते हैं। इस तरह के अंतर PRl द्वारा निर्दिष्ट किए गए हैं जिसमें एक एकल संपत्ति संशोधक (Sprm) और इसके ऑपरेंड शामिल हैं। एप्लिकेशन Prls की सूचियों के अनुप्रयोग द्वारा संपत्तियों के अंतिम सेट का निर्धारण कर सकता है।
पासवर्ड सुरक्षा: वर्ड फ़ाइलों को भी पासवर्ड से सुरक्षित किया जा सकता है, जिसके लिए निम्न में से किसी एक तंत्र का उपयोग किया जा सकता है।
- एक्सओआर अस्पष्टता
- कार्यालय बाइनरी दस्तावेज़ RC4 एन्क्रिप्शन
- कार्यालय बाइनरी दस्तावेज़ RC4 क्रिप्टोएपीआई एन्क्रिप्शन
यदि FibBase.fEncrypted और FibBase.fObfuscation दोनों 1 हैं, तो XOR अस्पष्टता का उपयोग करके फ़ाइल अस्पष्ट हो जाती है।
यदि FibBase.fEncrypted 1 है और FibBase.fObfuscation 0 है, तो फ़ाइल को या तो Office बाइनरी दस्तावेज़ RC4 एन्क्रिप्शन या Office बाइनरी दस्तावेज़ RC4 CryptoAPI एन्क्रिप्शन का उपयोग करके एन्क्रिप्ट किया गया है, EncryptionHeader को पहले FibBase.lKey बाइट्स में टेबल स्ट्रीम में संग्रहीत किया जाता है। EncryptionHeader.EncryptionVersionInfo निर्दिष्ट करता है कि फ़ाइल को एन्क्रिप्ट करने के लिए किस एन्क्रिप्शन तंत्र का उपयोग किया गया था।
फ़ाइल संरचना
अपनी मौलिकता में एक बाइनरी वर्ड फाइल एक ओएलई कंपाउंड फाइल है जिसमें कई स्टोरेज और स्ट्रीम शामिल हैं। इन स्टोरेज और स्ट्रीम की अपनी संरचना और आकार होते हैं, जो लिखने और पढ़ने के लिए पैरामीटर निर्दिष्ट करते हैं। य़े हैं:
वर्ड डॉक्यूमेंट स्ट्रीम
इस धारा में दस्तावेज़ पाठ और फ़ाइल के अन्य भागों से संदर्भित अन्य जानकारी शामिल है। स्ट्रीम में शुरुआत में FIB के अलावा कोई पूर्वनिर्धारित संरचना नहीं है जो अनिवार्य है और ऑफसेट 0 पर होना चाहिए। यह स्ट्रीम 2147 एमबी से बड़ी नहीं होनी चाहिए।
1टेबलस्ट्रीम या 0टेबलस्ट्रीम
एक बाइनरी वर्ड फ़ाइल में टेबल स्ट्रीम हो सकते हैं जिन्हें 1टेबल स्ट्रीम या 0टेबल स्ट्रीम के रूप में जाना जाता है। इनमें से कम से कम एक दस्तावेज़ में मौजूद होना चाहिए। हालाँकि, यदि किसी दस्तावेज़ में 1Table और 0Table दोनों स्ट्रीम हैं, तो केवल base.fWhichTblStm द्वारा संदर्भित स्ट्रीम का उपयोग किया जाता है। असंबंधित स्ट्रीम को अनदेखा किया जाना चाहिए। टेबल स्ट्रीम 2147 एमबी से बड़ी नहीं होनी चाहिए।
आकड़ों का प्रवाह
डेटा स्ट्रीम की कोई पूर्वनिर्धारित संरचना नहीं है। इसमें वह डेटा होता है जिसे FIB या फ़ाइल के अन्य भागों से संदर्भित किया जाता है। यदि इस धारा का कोई संदर्भ नहीं है तो इस स्ट्रीम को उपस्थित होने की आवश्यकता नहीं है। डेटा स्ट्रीम 2147 एमबी से बड़ी नहीं होनी चाहिए।
ऑब्जेक्ट पूल स्टोरेज
ऑब्जेक्ट पूल स्टोरेज में एम्बेडेड ओएलई ऑब्जेक्ट्स के लिए स्टोरेज शामिल हैं। यदि दस्तावेज़ में कोई एम्बेडेड OLE ऑब्जेक्ट नहीं है, तो इस संग्रहण की आवश्यकता नहीं है।
कस्टम XML डेटा संग्रहण
कस्टम XML डेटा संग्रहण एक वैकल्पिक संग्रहण है जिसका नाम “MsoDataStore” होना चाहिए।
सारांश सूचना स्ट्रीम
सारांश सूचना स्ट्रीम एक वैकल्पिक स्ट्रीम है जिसका नाम “\005SummaryInformation” होना चाहिए, जहां \005 मान 0x0005 वाला वर्ण है, न कि स्ट्रिंग शाब्दिक “\005”।
दस्तावेज़ सारांश सूचना स्ट्रीम
दस्तावेज़ सारांश सूचना स्ट्रीम एक वैकल्पिक स्ट्रीम है जिसका नाम “\005DocumentSummaryInformation” होना चाहिए, जहाँ \005 मान 0x0005 वाला वर्ण है, न कि स्ट्रिंग शाब्दिक “\005”।
एन्क्रिप्शन स्ट्रीम
एन्क्रिप्शन स्ट्रीम एक वैकल्पिक स्ट्रीम है जिसका नाम “एन्क्रिप्शन” होना चाहिए। यह धारा तब तक उपस्थित नहीं होनी चाहिए जब तक कि निम्नलिखित दोनों शर्तें पूरी न हों:
- दस्तावेज़ को Office बाइनरी दस्तावेज़ RC4 क्रिप्टोएपीआई एन्क्रिप्शन के साथ एन्क्रिप्ट किया गया है।
- FDocProps मान EncryptionHeader.Flags में सेट है।
मैक्रो स्टोरेज
मैक्रोज़ स्टोरेज एक वैकल्पिक स्टोरेज है जिसमें फ़ाइल के लिए मैक्रोज़ होते हैं। यदि मौजूद है, तो यह एक प्रोजेक्ट रूट स्टोरेज होना चाहिए।
XML हस्ताक्षर संग्रहण
XML सिग्नेचर स्टोरेज एक वैकल्पिक स्टोरेज है जिसका नाम “_xmlsignatures” होना चाहिए।
हस्ताक्षर स्ट्रीम
सिग्नेचर स्ट्रीम एक वैकल्पिक स्ट्रीम है जिसका नाम “_signatures” होना चाहिए। इस धारा में डिजिटल हस्ताक्षर हैं।
सूचना अधिकार प्रबंधन डेटा स्पेस स्टोरेज
सूचना अधिकार प्रबंधन डेटा स्पेस स्टोरेज एक वैकल्पिक स्टोरेज है जिसका नाम “\006DataSpaces” होना चाहिए, जहां \006 मान 0x0006 वाला कैरेक्टर है, न कि स्ट्रिंग लिटरल “\006”। यदि यह संग्रहण मौजूद है, तो संरक्षित सामग्री स्ट्रीम भी मौजूद होनी चाहिए। यदि यह स्टोरेज मौजूद है, तो इस स्टोरेज और प्रोटेक्टेड कंटेंट स्ट्रीम के अलावा सभी निर्दिष्ट स्ट्रीम और स्टोरेज को [MS-OFFCRYPTO] में निर्दिष्ट प्रोटेक्टेड कंटेंट स्ट्रीम से पढ़ा जाना चाहिए और यदि उनमें से कोई भी स्ट्रीम और स्टोरेज प्रोटेक्टेड कंटेंट के बाहर मौजूद है स्ट्रीम, उन्हें अनदेखा किया जाना चाहिए।
संरक्षित सामग्री स्ट्रीम
संरक्षित सामग्री स्ट्रीम एक वैकल्पिक स्ट्रीम है जिसका नाम “\009DRMContent” होना चाहिए, जहां \009 मान 0x0009 वाला वर्ण है, न कि स्ट्रिंग शाब्दिक “\009”। यदि यह स्ट्रीम मौजूद है, तो सूचना अधिकार प्रबंधन डेटा स्पेस स्टोरेज भी मौजूद होना चाहिए।