CSS Brainfuck und das DeCSS Haiku
Mittwoch, 25.3.2009, 20:30 > daMaxCode kann so hübsch sein. Ein anonymer Autor schrieb dieses grafisch beeindruckende, fast schon poetische Stück Code in Brainfuck, einer Turing-Maschinen-Sprache. Es ist der Decodierungsalgorithmus, der die CSS-Verschlüsselung von DVDs entschlüsselt.
Noch poetischer ist das DeCSS Haiku. Kleiner Ausschnitt:
Now help me, Muse, for
I wish to tell a piece of
controversial math.
Dieses Gedicht enthält im klassischen Haikuversmaß 575 nicht nur die Geschichte des Verbots, sondern auch die Anleitung, wie der Algorithmus zu programmieren ist. Ich bin der Meinung, das war Spitze *indieluftspring*. Die dazugehörige Geschichte ist mir irgendwie dann aber doch zu hoch und zu lang.
(gefunden in der Gallery of CSS Descramblers)
Ach und weil's gerade so schön abstrakt ist hier nochmal das gleiche in Perl
Auszug eines Slashdot Artikels
For something so small, this is quite an accomplishment. It's also a bit of an embarassment for Hollywood when you consider that the basis of a multi-billion dollar revenue-stream can be foiled by such a small piece of code!$_='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;evalA rewrite, using an extra five bytes (!) of perl code, caches a table, which apparently makes the program fast enough to decode a movie in realtime:
$_='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^=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])<<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;eval
css | decss | hack | pearl | brainfuck
Antworten
Halte Dich bitte an die Spielregeln. Welche Emoticons du verwenden kannst, steht hier.
Um hier kommentieren zu können, musst Du einen beliebigen Namen sowie eine beliebige E-Mail-Adresse angeben. Diese Daten werden dann erstmal zur Spamerkennung in die USA geschickt, dort und danach auch auf meinem Server gespeichert. Mit dem Absenden Deines Kommentars erklärst Du Dich damit und den hier geltenden Datenschutzbestimmungen (insbesondere dem Abschnitt Kommentarfunktion) einverstanden. Wenn Du damit nicht einverstanden bist, lass das Kommentieren bleiben, aber dann deinstalliere bitte auch sofort WhatsApp und verabschiede Dich von Facebook. Kommentarabonnements werden automatisch nach 3 Monaten gelöscht.
Wer HTML kann, ist klar im Vorteil. Diese Tags sind erlaubt:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Bei der Menge an Spam-Kommentaren passiert es hin und wieder, dass ein Kommentar vom Spamfilter gefressen wird. Bitte sei mir nicht böse aber ich habe weder Zeit noch Lust, solch verloren gegangenen Kommentaren hinterher zu forschen. Wenn das öfters passiert, schreib' mir 'ne Mail damit ich dich whitelisten kann.