XP is just a number PerlMonks

### qrpff

by Dominus (Parson)
 on May 19, 2001 at 23:16 UTC Need Help??

This is qrpff.pl. It decodes CSS, which is the Content-Scrambling System used to encrypt video data on DVDs:
```\$_='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])&11
+0;\$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;eval
I did not write this; it was written by Keith Winstein and Marc Horowitz at MIT.

Some time ago I was hired by Wired magazine to explain how this program worked. I promised you folks that when the magazine got to the newsstand, I would put my original, unedited version online.

Create A New User
Node Status?
node history
Node Type: obfuscated [id://81756]
Approved by root
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?