The Trojan Cow Project

The Trojan Cow email server is unavailable. The Meme Factory's FTP site is down until 2002. Please come back for downloads then.


If you wish to submit a comment to the Copyright Office regarding the Digital Millennium Copyright Act, you've come to a good place.

*Warning*, before submitting a comment through the Trojancow service, you should read this page with care so you know what you're getting in to.

What Cow?

You should note that appended to your comment will be one of two original art works, of a cow. This is possible because the Copyright Office wishes to place all comments on their web site, and they find it easier to do this if the comments are in PDF format. And, of course, images can be included in PDF files.

Wadda mean Trojan?

Well, it turns out that if you were to have _both_ original art works, both cows, and you knew what to do with them, you would find that there is copyrighted material cleverly, and effectively, protected by technological means from those who would illegally, according to the Digital Millennium Copyright Act, obtain access to this material. It also happens that a portion of the technologically protected material is the DVD-CAA v. 521 - Reply Declaration of John J. Hoy, Exhibit B. This is a public US court document containing the text of the DVD decryption code that got that poor 16 year old in Norway arrested.

I've heard that the DVD decryption code attracts lawyers. Can I get in trouble for using or setting up the Trojancow service?

I'm no lawyer, but I wouldn't think so. You see, any one Trojancow artwork contains only a portion of the information necessary to _construct_ the DVD decryption code. Here's the analogy: supposing you didn't want to get caught with a latte (you know, the stuff made with expresso coffee and milk.) Well, if you have only the milk, or only the coffee, there's no latte. You need both the milk and the coffee, and an expresso machine to make latte. One cow artwork corresponds to the milk, the other to the coffee. The expresso machine corresponds to the program an evil copyright violator would have to write to obtain the DVD decryption code. (See next section.)

Prove that there's hidden DVD decryption code.

I'm not going to, you'll just have to take my word for it. You see, right now I value the license to view the protected material at about 10 million dollars. I figure that's probably enough to keep me rolling in lawyers for a while, should I need to go there. Anyone, the Motion Picture Association, for instance, who wishes to check on the "content" of the Trojancow artwork will have to come up with the money. I'm torn, because I very much would like to release the code (written in guile) that protects my copyrighted material so others can benefit from it. However, at this time it's not happening.

Ok, so how do I send a cow to the Copyright Office for inclusion on their web site?

1) Have a look at their request for comment and come up with something good to say. You may also wish to see their extension of the deadline in which they expanded the data formats they accept to include mime attachment encoded plain ASCII text.

Remember, this is _public_ comment. You don't want to make the crew your hanging with look like hostile malcontents, even if they are.

I wish I could provide a good example, but I'm pressed for time.

2) Write an e-mail to one of the Trojancow servers listed below. Our recommendation is to use the following format:

The copyright office requires the following information with your submission:

mailing address
telephone number
fax number
e-mail address
Please begin your e-mail with this information, with no leading blank lines. Please follow this information with at least one blank line.

Note: You could, of course, claim to be anybody. Before you abrogate your identity, please remember that freedom isn't free. If nobody takes a stand, they'll be nobody to stand up for what's right.

You will receive an e-mail back suitable for re-sending to the copyright office. If you have followed our formatting guidelines, the textual information will be the your contact information as shown above, and a PDF attachment containing the contents of your original e-mail and a cow artwork.

You may wish the PDF to differ slightly from the e-mail sent to the Trojancow server. For example, you plan to Cc: the President of the United States when you send your message to the copyright office. You'd like the PDF to show this Cc: header so that the folks at the copyright office will know that you're going straight to the top with your comments. But you don't want to Cc: the President until you send the real message, he shouldn't see your experiments with the Trojancow service. So, you want the Trojancow service to put an e-mail header (Cc:) into the PDF, a header that's not in the message you send to the service. For other reasons, you may want to change the appearance of an e-mail header that you _have_ included in your message to the service. To do these things, you'll need an e-mail program that allows you to add additional e-mail headers. Traditional programs like elm, pine, mail, or emacs allow you to do this, but I don't think that the fancy GUI ones like Eudora or Outlook allow it. (Although I haven't looked at Eudora Pro.) See the documentation that comes with your e-mail program.

Here's how to use the feature, for those of you willing and able to diddle with your e-mail headers. The writer may add a X-Trojancow-*: headers to the e-mail sent to the Trojancow service. In the generated PDF, the 'X-Trojancow-' part is removed and the resulting headers become part of the PDF. Any existing headers with conflicting names are replaced. To get back to our Cc: example, add the extra header:

in your mail to the Trojancow service. This produces a PDF that shows the 'email header':
along with the rest of the headers.

By default, you'll get a

To: (Office of the General Counsel, Copyright
    Office, Library of Congress)
in the PDF instead of the To: [trojancowservice] of the e-mail sent to the server. This address this is where your comments should be mailed.

3) When you get a satisfactory e-mail back, send it on to the Copyright Office at:

To: ' (Office of the General Counsel, Copyright
     Office, Library of Congress)'

The available Trojancow e-mail addresses are:

Whoops, we're moving our systems around and have broken the trojancow e-mail service. You can write to me,, to ask about the service.

(Please don't mail to these unless you have a comment for the Copyright Office. Thanks.)

Why hasn't The Meme Factory set up a Trojancow e-mail service?

We now have, but this is why we hadn't previously.

We want to keep our site available to others who wish to set up a Trojancow service. If we're plugged up with e-mail, we can't distribute the Trojancow package.

How do I set up a Trojancow service to help spread the cows?

You'll need to be root on a Unix system that's permanently connected to the net.

Run this software at your own risk. It's licensed under the GPL and has no warranty.

Performance Issues:

The software is somewhat CPU intensive, it costs at least 1350 BogoMIP seconds/email, and that doesn't count mail delivery overhead. (Divide by the BogoMIP rating of your machine to see how long it will take to generate one e-mail.) The generated e-mail messages are about 80K, which adds up too. I'm hoping that if there's lots of people wanting to comment, lots of people will set up Trojancow servers. They'll also be a sore need for a master list of available Trojancow servers. Right now, it doesn't look like I can put any more time into it.

Trojancow was written on a RedHat 6.1 system, but should work on about anything. Here's what I had to do:

First, download _only_ one of:

While you're at it, feel free to change these links to a local copy of the software when you set up your copy of this web page.

Here's the stuff that has to be there and the packages they're in:

If you have problems finding any of these rpms, I suggest rooting around in

Sorry, but there's no installation utility. I ran out of time. Here's where stuff goes:


(You'll have to mkdir /usr/share/trojancow, and use mv or cp -p to copy the files.)

Obviously, you'll have only either the A or the B files. (Yes, I know I'm not being consistent in the use of local, but I'm rushed.)

You'll also want to put up the pages in the html directory on your web site somewhere. (yes?) (This page, etc.)

Installing in locations other than /usr/local/bin /usr/share/trojancow breaks the paths hardcoded at the top of:


Then, configure the mail system:
(This gives the trojancow program permissions to be run by sendmail.)

ln -s /usr/local/bin/trojancow /etc/smrsh/

Add one of these these aliases to enable the program:

trojancow_A      : "| /etc/smrsh/trojancow /usr/share/trojancow/letter_A.tex"
trojancow_B      : "| /etc/smrsh/trojancow /usr/share/trojancow/letter_B.tex"
And then run:
to make the aliases active.

Try sending an e-mail and see if it works!

When you get it working, please e-mail whoever's maintaining the master list of trojancow servers.

If you have troubles, you might check this, although I may have all the paths hardcoded by now.

Be sure that /usr/local/bin is in $PATH. If not, edit /usr/local/bin/trojancow to explicitly reference /usr/local/bin/

Security considerations

There shouldn't be any. No backticking is done and no user submitted material is ever evaluated. Anyhow, that's what I think. Youse pays no money and youse takes yer chances.

Potential bugs:

I can't get perl to exec metasend when long e-mail headers are folded, long subjects for example. And it looks like metasend doesn't fold either. This could be a problem, depending on the mail transport agents on either end.

Thank you for your participation in the Trojancow Project.
(Have a cow, man!)


Karl O. Pinc
President, The Meme Factory, Inc.