FC: MIT programmers create 7-line Perl app that decrypts DVDs

Bill Stewart bill.stewart at pobox.com
Sat Mar 10 13:51:00 PST 2001


DVD CSS decoding in 7 lines of perl is a cute hack,
but it doesn't accomplish one of the main goals of DVDCSS,
which is to explain the structure of the lame crypto algorithm.
Even if you unwrap this to put the white space back,
it's dense unreadable line noise.

At 05:45 PM 03/07/2001 -0500, Declan McCullagh wrote:
>http://www.wired.com/news/culture/0,1284,42259,00.html
>    CAMBRIDGE, Mass. -- Descrambling DVDs just got even easier, thanks to
>    a pair of MIT programmers.
>    Using only seven lines of Perl code, Keith Winstein and Marc Horowitz
>    have created the shortest-yet method to remove the thin layer of
>    encryption that is designed to prevent people -- including Linux users
>    -- from watching DVDs without proper authorization.
>....
>#!/usr/bin/perl -w
># 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <sipb-iap-dvd at mit.edu>
># MPEG 2 PS VOB file on stdin -> descrambled output on stdout
># arguments: title key bytes in least to most-significant order
>$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
>$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72, at z=(64,72,$a^=12*($_%16
>-2?0:$m&17)),$b^=$_%64?12:0, at z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
>=5;$_=unxb24,join"", at b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
>d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
>$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
>(($h>>=8)+=$f+(~$g&$t))for at a[128..$#a]}print+x"C*", at a}';s/x/pack+/g;eval









More information about the cypherpunks-legacy mailing list