發信人: feifeijs (大公豬), 信區: GNULinux
標題: 用七行Perl 程式將DVD 解密?
發信站: 飲水思源站(Fri Mar 9 08:20:11 2001)


   
 


 轉信來自Slashdot 的報導。  
Slashdot 有一名讀者投書指出,David Touretzky 博士發表了一段七行、526 位元組的Perl VOB 反解頻器,
據說可以破解DVD 的CSS 鎖頻。 這個程式是在麻省理工學院一二月間的一堂『DVD 解碼』六小時講座上,由兩位MIT 學生資訊處理委員會的成員所寫出來的。

 這段七行的Perl 程式碼如下:

 
$_='while( read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){
 $h=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@
 ARGV;s/...$/1$&/;$d=unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<>8^
 ($f=($t=255)&($d>>12^$d>>4^$d^$d/8))<>8^($t&($g=($q=$e >>14&7
 ^$e)^$q*8^$q<<6))<>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"
 C*",@a}';s/x/pack+/g;eval 

 
 

另外還有一個版本,只比上面那段多了五個位元組,據說速度就能快到讓一段電影即時解密:


 
$ _='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^=(7
 2,@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])<>8^($f=$t&($d>>12^$d>>4^$d^$d
 /8))<>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<>=8)+=$f+ (~$g&
 $t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval 

 
 

Touretzky 博士自己也成立了一個網頁,專門收集CSS 解密的方法。

 該網頁上說明了這段名為qrpff 的程式的用法:cat /mnt/dvd/VOB_FILE
 _NAME | qrpff 153 2 8 105 225 | extract_mpeg2 | mpeg2dec -

 --
  ※來源:· 飲水思源站bbs.sjtu.edu.cn· [FROM: 202.120.7.27]
 








 


 







※ 編輯: ott 時間: 2014-03-05 04:51:05
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 922 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇