Coding Freedom: The Ethics and Aesthetics of Hacking
operation from Johansen’s DeCSS. Prodromou’s DeCSS stripped cascading style sheets data (i.e., formatting information) from HTML pages:
Hey, so, I’ve been really mad about the recent spate of horrible witch hunts by the MPAA against people who use, distribute, or even LINK TO sites that distribute DeCSS, a piece of software used for playing DVDs on Linux. The MPAA has got a bee in their bonnet about this DeCSS. They think it’s good for COPYING DVDs, which, in fact, it’s totally useless for. But they’re suing everybody ANYWAYS, the bastardos!
Anyways, I feel like I need to do something. I’ve been talking about the whole travesty here on Pigdog Journal and helped with the big flier campaign here in SF [ … ] , but I feel like I should do something more, like help redistribute the DeCSS software.
There are a lot of problems with this, obviously. First and foremost, Pigdog Journal is a collaborative effort, and I don’t want to bring down the legal shitstorm on the rest of the Pigdoggers just because I’m a Free Software fanatic.
DeCSS is Born
So, I decided that if I couldn’t distribute DeCSS, I would distribute DeCSS. Like, I could distribute another piece of software called DeCSS, that is perfectly legal in every way, and would be difficult for even the DVD-CCA’s lawyers to find fault with. [ … ]
Distribute DeCSS!
I encourage you to distribute DeCSS on your Web site, if you have one. [ … ] I think of this as kind of an “I am Spartacus” type thing. If lots of people distribute DeCSS on their Web sites, on Usenet newsgroups, by email, or whatever, it’ll provide a convenient layer of fog over the OTHER DeCSS. I figure if we waste just FIVE MINUTES of some DVD-CCA Web flunkey’s time looking for DeCSS, we’ve done some small service for The Cause. 16
Thousands of developers posted
Pigdog
’s DeCSS on their Web sites as flak to further confuse law enforcement officials and entertainment industry executives, since they felt these people were clueless about the nature of software technology. Dozens of these developers (including Johansen) received cease-and-desist letters demanding they take down a version of DeCSS that was completely unrelated to the decryption DeCSS.
Clever re-creations of the original DeCSS source code (originally written in the C programming language) using other languages (such as Perl) also began to proliferate, as did translations into poetry, music, and film. A Web site hosted by Touretzky, called the Gallery of CSS DeScramblers, showcased a set of twenty-four of these artifacts—the point being to demonstrate the difficulty of drawing a sharp line between functionality and expression in software. 17 Touretzky, an expert witness in the DeCSS case, said as much in the introductory statement to his gallery:
If code that can be directly compiled and executed may be suppressed under the DMCA, as Judge Kaplan asserts in his preliminary ruling, but a textual description of the same algorithm may not be suppressed, thenwhere exactly should the line be drawn? This web site was created to explore this issue. 18
Here is a short snippet (about one-fifth) of the original DeCSS source code written in the C programming language:
void CSSdescramble(unsigned char *sec,unsigned char *key)
{
unsigned int t1,t2,t3,t4,t5,t6;
unsigned char *end=sec+0x800;
t1=key[0]^sec[0x54]|0x100;
t2=key[1]^sec[0x55];
t3=(*((unsigned int *)(key+2)))^(*((unsignedint *)(sec+0x56)));
t4=t3&7;
t3=t3*2+8-t4;
sec+=0x80;
t5=0;
while(sec!=end)
{
t4=CSStab2[t2]^CSStab3[t1];
t2=t1>>1;
t1=((t1&1)<<8)^t4;
t4=CSStab5[t4];
t6=(((((((t3>>3)^t3)>>1)^t3)>>8)^t3)>>5)&0xff;
t3=(t3<<8)|t6;
t6=CSStab4[t6];
t5+=t6+t4;
*sec++=CSStab1[*sec]^(t5&0xff);
t5>>=8;
}
Compare this fragment to another one written in Perl, a computer language that hackers regard as particularly well suited for crafting poetic code because longer expressions can be condensed into much terser, sometimes quite elegant (although sometimes quite obfuscated) statements. And indeed the original DeCSS program, composed of 9,830 characters, required only 530 characters in Perl:
#!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz
#
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant
Weitere Kostenlose Bücher