{"id":50,"date":"2001-03-09T13:10:00","date_gmt":"2001-03-09T16:10:00","guid":{"rendered":""},"modified":"2014-03-25T17:36:25","modified_gmt":"2014-03-25T20:36:25","slug":"eu_adoro_o_larry_wall","status":"publish","type":"post","link":"http:\/\/www.charles.pilger.com.br\/blog\/archives\/50","title":{"rendered":"Eu adoro o Larry Wall!"},"content":{"rendered":"<p>\u00c9 para gostar ou n\u00e3o do Perl? Olhe s\u00f3 esse c\u00f3digo criado por <a href=\"http:\/\/web.archive.org\/web\/*\/http:\/\/idgnow.uol.com.br\/idgnow\/pcnews\/2001\/03\/0033\" target=\"_top\">dois estudantes do MIT<\/a>, que quebra o c\u00f3digo de prote\u00e7\u00e3o do DVD:<\/p>\n<blockquote><p><tt>Smallest version:<br \/>\n#!\/usr\/bin\/perl -w<br \/>\n# 526-byte qrpff, Keith Winstein and Marc Horowitz &lt;sipb-iap-dvd@mit.edu&gt;<br \/>\n# MPEG 2 PS VOB file on stdin -&gt; descrambled output on stdout<br \/>\n# arguments: title key bytes in least to most-significant order<br \/>\n$_=\u201awhile(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx\"C*\",$_)[20]&amp;48){$h=5;<br \/>\n$_=unxb24,join\"\",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s\/...$\/1$&amp;\/;$d=<br \/>\nunxV,xb25,$_;$b=73;$e=256|(ord$b[4])&lt;&lt;9|ord$b[3];$d=$d&gt;&gt;8^($f=($t=255)&amp;($d<br \/>\n&gt;&gt;12^$d&gt;&gt;4^$d^$d\/8))&lt;&lt;17,$e=$e&gt;&gt;8^($t&amp;($g=($q=$e&gt;&gt;14&amp;7^$e)^$q*8^$q&lt;&lt;6))&lt; ,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_\/16%8])&amp;110;$t<br \/>\n^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&amp;17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))<br \/>\n[$_]^(($h&gt;&gt;=8)+=$f+(~$g&amp;$t))for@a[128..$#a]}print+x\"C*\",@a}\u201a;s\/x\/pack+\/g;eval<br \/>\n<\/tt><\/p><\/blockquote>\n<p>Se a gente for comparar o <a href=\"http:\/\/web.archive.org\/web\/*\/http:\/\/www.cs.cmu.edu\/~dst\/DeCSS\/Gallery\/css_descramble.c\" target=\"_top\">c\u00f3digo fonte em C<\/a> para fazer a mesma opera\u00e7\u00e3o temos v\u00e1rias e v\u00e1rias linhas&#8230; Ok, algu\u00e9m pode at\u00e9 dizer que esse \u00e9 o mesmo caso dos <b>one line programs<\/b> feitos em Basic (quem lia a revista Micro Sistemas deve se lembrar deles), mas o fato \u00e9 que \u00e9 um c\u00f3digo realmente enxuto. Um dia desses ainda vou ter um DVD para fazer um teste de performance. Se o Perl ganhar da\u00ed \u00e9 ir pr\u00e1 galera&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c9 para gostar ou n\u00e3o do Perl? Olhe s\u00f3 esse c\u00f3digo criado por dois estudantes do MIT, que quebra o c\u00f3digo de prote\u00e7\u00e3o do DVD: Smallest version: #!\/usr\/bin\/perl -w # 526-byte qrpff, Keith Winstein and Marc Horowitz &lt;sipb-iap-dvd@mit.edu&gt; # MPEG 2 PS VOB file on stdin -&gt; descrambled output on stdout # arguments: title key [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts\/50"}],"collection":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":4,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts\/50\/revisions"}],"predecessor-version":[{"id":232975,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts\/50\/revisions\/232975"}],"wp:attachment":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/media?parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/categories?post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/tags?post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}