Die Leute erwähnen, dass das Öffnen der DVD mit VLC (das das DVD-Menü anzeigt) die Daten auf magische Weise zugänglich macht dd
, aber noch hat niemand erklärt, warum das so ist und wie VLC dieses Kunststück vollbringt.
Ich konnte dieses Verhalten replizieren, als ich versuchte, eine DVD auf meinem Computer von einem Kodi-Gerät abzuspielen, das an meinen Fernseher angeschlossen war, indem ich SMB verwendete, um das Stammverzeichnis des DVD-Laufwerks über das Netzwerk freizugeben. Es hat nicht funktioniert, es sei denn, ich habe die DVD zuerst mit VLC geöffnet. Zu diesem Zeitpunkt konnte Kodi die Dateien auf magische Weise abspielen.
Diese Art von Magie verletzt meine Sensibilität, also ging ich graben. Die zugrunde liegende Ursache des Problems ist, dass Ihr DVD-Laufwerk gegen Sie arbeitet . Laut Wikipedia :
Wenn das Laufwerk jedoch eine mit CSS kompilierte Disc erkennt, verweigert es den Zugriff auf logische Blöcke, die als urheberrechtlich geschützt gekennzeichnet sind (§6.15.3 [2]). Der Spieler muss zuerst einen Authentifizierungs-Handshake ausführen (§4.10.2.2 [2]).
Es ist also nicht nur so, dass Sie verschlüsselte Daten erhalten, die beim Lesen der DVD nicht abgespielt werden können. Das Laufwerk sendet die Bits erst zurück, wenn sich ein Programm auf Ihrem Computer mithilfe einiger vom Linux-Kernel verfügbarer DVD-spezifischer IOCTLs (in diesem Fall DVD_AUTH ) beim Laufwerk authentifiziert hat . Aus diesem Grund manifestiert sich dies als E / A-Fehler.
Weitere Informationen zur Funktionsweise dieser IOCTLs finden Sie in diesem Mailinglistenbeitrag der Person, die sie implementiert hat . Grundsätzlich bieten sie jedoch eine Möglichkeit für Userland-Software, den geheimen Handshake mit der Hardware des DVD-Laufwerks durchzuführen.
VLC führt diesen geheimen Handschlag durch libdvdcss
, der sie wiederum in zu tun scheint GetBusKey()
incss.c
. Vermutlich könnte ein eigenständiges Programm, das mit verknüpft ist libdvdcss
, geschrieben werden, um das Laufwerk für den Zugriff als Dateien freizuschalten, anstatt sich auf den gesamten VLC zu verlassen. Sobald es entsperrt ist, kann das Laufwerk nicht erkennen, welches Programm von ihm liest, und sendet die (noch verschlüsselten, aber jetzt lesbaren) Bits an alle zurück, einschließlich dd
oder cp
.
(Interessanterweise sind die DVD-IOCTLs auch die einzige echte Möglichkeit, den Entschlüsselungsschlüssel zum Entschlüsseln der Daten auf der Festplatte zu erhalten, sobald Sie sie gelesen haben. Wenn Sie ein kopiertes Verzeichnis von Dateien abspielen, haben Sie keinen Zugriff darauf die IOCTLs, um die Schlüssel zu erhalten, greifen daher libdvdcss
auf statistische Kryptoanalyse zurück, um die Verschlüsselung zu knacken .)