(Fwd) FC: MIT programmers create 7-line Perl app that decrypts

From lsi <lsi@lsi.clara.net>
Date Thu, 8 Mar 2001 02:00:04 -0000


[: hacktivism :]

hi folks :-)

------- Forwarded message follows -------
Date sent:      	Wed, 7 Mar 2001 17:45:19 -0500
From:           	Declan McCullagh <declan@well.com>
To:             	politech@politechbot.com
Copies to:      	sipb-iap-dvd@mit.edu
Subject:        	FC: MIT programmers create 7-line Perl app that decrypts DVDs
Send reply to:  	declan@well.com



http://www.wired.com/news/culture/0,1284,42259,00.html

   Descramble That DVD in 7 Lines
   by Declan McCullagh (declan@wired.com)
   9:00 a.m. Mar. 7, 2001 PST

   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.

   Their "qrpff" program is a more compact cousin of the DeCSS utility
   that eight movie studios successfully sued to remove from the website
   of 2600 Magazine. But unlike DeCSS, qrpff is abbreviated enough for
   critics of the Motion Picture Association of America to include in,
   for example, e-mail signature files -- and many already have.

   "I think there's some value in demonstrating how simple these things
   really are and how preposterous it is to try to restrict their
   distribution," says Winstein, a 19-year-old MIT sophomore computer
   science major.

   [...]


Usage:
qrpff 153 2 8 105 225 /mnt/dvd/VOB_FILE_NAME | extract_mpeg2 | mpeg2_dec -


#!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <sipb-iap-dvd@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,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@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@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval




-------------------------------------------------------------------------
POLITECH -- Declan McCullagh's politics and technology mailing list
You may redistribute this message freely if it remains intact.
To subscribe, visit http://www.politechbot.com/info/subscribe.html
This message is archived at http://www.politechbot.com/
-------------------------------------------------------------------------


------- End of forwarded message -------
------------------------------
. ^               Stuart Udall
.~X\     stuart@cyberdelix.net
.~ \    http://cyberdelix.net/

..revolution through evolution



[: hacktivism :]
[: for unsubscribe instructions or list info consult the list FAQ :]
[: http://hacktivism.tao.ca/ :]