its at times like this, the fact we are archived suddenly seems
a good thing (TM)
* Simon Batistoni ([EMAIL PROTECTED]) wrote:
> Wow! A perl post on london.pm...
>
> I know most people here probably read Slashdot, but this was too sweet to
> pass up.
>
> #!/usr/bin/perl -w
> # 526-byte qrpff, Keith Winstein and Marc Horowitz <[EMAIL PROTECTED]>
> # 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;$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])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
> >>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
> ,$_=(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)
> )
> [$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eva
> l
>
>
> Code originally at:
> http://www.cs.cmu.edu/~dst/DeCSS/Gallery/qrpff.pl
>
> Slasdot story:
> http://slashdot.org/askslashdot/01/03/06/1954213.shtml
--
Greg McCarroll http://www.mccarroll.uklinux.net