[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FYI] (Fwd) FC: MIT programmers create 7-line Perl app that decrypts
- To: debate@fitug.de
- Subject: [FYI] (Fwd) FC: MIT programmers create 7-line Perl app that decrypts
- From: "Axel H Horns" <horns@ipjur.com>
- Date: Thu, 8 Mar 2001 09:52:18 +0100
- CC: krypto@thur.de
- Comment: This message comes from the debate mailing list.
- Organization: NONE
- Sender: owner-debate@fitug.de
------- 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^=1
2*($_%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;ev
al
----------------------------------------------------------------------
--- 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 -------