İnsanlar DVD'yi VLC (DVD menüsünü gösteren) ile açmanın verileri sihirli bir şekilde erişilebilir hale getirdiğini dd
, ancak bunun neden olduğunu ve VLC'nin bu başarıyı nasıl başardığını henüz kimse açıklamadı.
Ağımda DVD sürücüsünün kökünü paylaşmak için SMB kullanarak, televizyonuma bağlanan Kodi cihazından bilgisayarımda DVD oynatmaya çalışırken bu davranışı çoğaltmayı başardım. O, değil çalışma yaptı sürece ben ilk nokta Kodi sihirli dosyaları oynayabilir hangi VLC ile DVD'yi açıldı.
Bu tür bir sihir hassasiyetlerimi rahatsız ediyor, bu yüzden kazmaya gittim. Sorunun altında yatan neden, DVD sürücünüzün size karşı çalışmasıdır . Gereğince Vikipedi :
Ancak, sürücü CSS ile derlenmiş bir disk algılarsa, telif hakkı ile işaretlenmiş mantıksal bloklara erişimi reddeder (§6.15.3 [2]). Oynatıcının önce bir kimlik doğrulama anlaşması yürütmesi gerekir (§4.10.2.2 [2]).
Yani sadece DVD'yi okuduğunuzda oynatılamayan şifrelenmiş veriler elde edemezsiniz; makinenizdeki bir program Linux çekirdeği tarafından maruz bırakılan DVD'ye özgü bazı IOCTL'ler (bu durumda DVD_AUTH ) kullanarak sürücünün kimliği doğrulanmadıkça sürücü bitleri geri göndermez . Bu yüzden bu bir G / Ç hatası olarak kendini gösterir.
Bu IOCTL'lerin nasıl çalıştığı hakkında daha fazla bilgi, bu posta listesi postasında onları uygulayan kişiden edinilebilir , ancak temel olarak kullanıcı alanı yazılımının DVD sürücüsü donanımıyla gizli el sıkışmasını gerçekleştirmesi için bir yol sağlar.
VLC ile bu gizli el sıkışma gerçekleştiren libdvdcss
sırayla bunu yapmak görünüyor, GetBusKey()
içindecss.c
. Muhtemelen libdvdcss
tüm VLC'ye güvenmek yerine sürücünün dosya olarak erişim için kilidini açmak üzere bağlantılı olan bağımsız bir program yazılabilir. Kilidi açıldıktan sonra, sürücü hangi programın okuduğunu söyleyemez, bu nedenle (hala şifrelenmiş ancak şimdi okunabilir) bitleri dd
veya dahil olmak üzere herkese geri gönderir cp
.
(İlginç bir şekilde, DVD IOCTL'ler de, bir kez okuduktan sonra, diskteki verilerin şifresini çözmek için kullanılan şifre çözme anahtarını almanın tek gerçek yoludur. Kopyalanmış bir dosya dizini oynatıyorsanız, anahtarları almak için IOCTL'ler, bu nedenle libdvdcss
şifrelemeyi kırmak için istatistiksel kriptanalize başvurur .)