लोग उल्लेख करते हैं कि वीएलसी के साथ डीवीडी को खोलना (जो डीवीडी मेनू प्रदर्शित करता है) जादुई रूप से डेटा को सुलभ बनाता है dd
, लेकिन किसी ने अभी तक यह नहीं बताया कि ऐसा क्यों है और वीएलसी इस उपलब्धि को कैसे पूरा करता है।
मैं इस व्यवहार को दोहराने में कामयाब रहा जब नेटवर्क पर डीवीडी ड्राइव की जड़ को साझा करने के लिए एसएमबी का उपयोग करके कोडी डिवाइस से अपने कंप्यूटर में एक डीवीडी चलाने की कोशिश की जा रही थी, जो मेरे टीवी पर झुकी हुई थी। यह तब तक काम नहीं आया, जब तक कि मैंने पहली बार वीएलसी के साथ डीवीडी नहीं खोली, जिस बिंदु पर कोडी जादुई रूप से फाइलें खेल सकता था।
इस तरह का जादू मेरी संवेदनाओं को प्रभावित करता है, इसलिए मैं खुदाई करता गया। समस्या का अंतर्निहित कारण यह है कि आपकी डीवीडी ड्राइव आपके खिलाफ काम कर रही है । विकिपीडिया के अनुसार :
हालाँकि, यदि ड्राइव सीएसएस के साथ संकलित एक डिस्क का पता लगाता है, तो यह उन तार्किक ब्लॉकों तक पहुंच से इनकार करता है जो कॉपीराइट के रूप में चिह्नित हैं (copyright6.15.3 [2])। खिलाड़ी को पहले एक प्रमाणीकरण हैंडशेक निष्पादित करना होता है (.104.10.2.2 [2])।
तो यह सिर्फ यह नहीं है कि आपको एन्क्रिप्टेड डेटा मिलेगा जो डीवीडी पढ़ने पर नहीं खेला जा सकता है; ड्राइव तब तक बिट्स को वापस नहीं भेजेगा जब तक कि आपकी मशीन के कुछ प्रोग्राम ने ड्राइव में खुद को प्रमाणित नहीं किया हो, लिनक्स कर्नेल द्वारा उजागर किए गए कुछ डीवीडी-विशिष्ट IOCTL का उपयोग करके (इस मामले में, DVD_AUTH )। इसलिए यह I / O त्रुटि के रूप में प्रकट होता है।
इस आईओसीटीएल के काम करने के तरीके के बारे में अधिक जानकारी इस मेलिंग सूची पोस्ट में उस व्यक्ति से उपलब्ध है जिसने उन्हें लागू किया था , लेकिन मूल रूप से वे डीवीडी ड्राइव हार्डवेयर के साथ गुप्त हैंडशेक प्रदर्शन करने के लिए उपयोगकर्तालैंड सॉफ़्टवेयर के लिए एक तरीका प्रदान करते हैं।
वीएलसी इस सीक्रेट हैंडशेक के माध्यम से करता है libdvdcss
, जो बदले में इसे करने के लिए लगता GetBusKey()
हैcss.c
। संभवतः एक स्टैंडअलोन प्रोग्राम, जिसके खिलाफ लिंक libdvdcss
किया गया था, सभी VLC पर निर्भर होने के बजाय, फ़ाइलों के रूप में उपयोग के लिए ड्राइव को अनलॉक करने के लिए लिखा जा सकता है। एक बार जब यह अनलॉक हो जाता है, तो ड्राइव यह नहीं बता सकता है कि कौन सा प्रोग्राम इसे पढ़ रहा है, इसलिए यह किसी को भी (या अभी भी एन्क्रिप्ट किया गया) बिट्स को वापस भेजता है, जिसमें शामिल है dd
या cp
।
(दिलचस्प बात यह है कि डिस्क पर डेटा को डिक्रिप्ट करने के लिए डिक्रिप्ट कुंजी का उपयोग करने के लिए डीवीडी IOCTL भी एकमात्र वास्तविक तरीका है, एक बार इसे पढ़ने के बाद। यदि आप फ़ाइलों की प्रतिलिपि बनाई गई निर्देशिका खेल रहे हैं, तो आपके पास पहुंच नहीं है। IOCTL कुंजी प्राप्त करने के लिए, इसलिए libdvdcss
एन्क्रिप्शन को क्रैक करने के लिए सांख्यिकीय क्रिप्टोनालिसिस का समर्थन करता है ।)