Skip to main content
Find a Lawyer



Thursday, Sep. 26, 2002

"Reverse engineering" of software products occurs when a competitor purchases software and uses engineering techniques to figure out how it works. The competitor may want, for instance, to ensure interoperability with its own products, or it may want to create a new product using some of the purchased product's underlying ideas.

The practice of reverse engineering is widespread throughout the software industry. Indeed, for many software firms, reverse engineering competitors' products to study their innovations is a standard practice. Those who reverse engineer justify the practice by pointing out that it allows the industry to provide the public with better quality, less expensive software.

Now, however, some companies whose software has been reverse engineered have started to fight back. They have added anti-reverse engineering provisions to the "shrinkwrap" licenses that accompany their products. They argue that, as a result, purchasers are legally bound not to reverse engineer their software. If purchasers do so anyway, they have breached a contract and can be sued for damages.

Are they correct? In its recent opinion in Bowers v. Baystate Technologies, Inc., the U.S. Court of Appeals for the Federal Circuit said yes. The result may be a substantial decrease in competition in the markets for computer software - a sector that is immensely important to the American economy.

The Bowers Case

Bowers involves a dispute between inventor Harold Bowers, who marketed a patented computer-aided design (CAD) software "toolkit" with a shrinkwrap license barring reverse engineering, and Baystate, a rival software vendor, which reverse engineered Bowers' software and subsequently marketed a competing CAD toolkit.

After a jury ruled for Bowers on all of his counterclaims, Baystate appealed. A three-judge panel of the Federal Circuit upheld the infringement and breach of contract verdicts.

It is the latter holding that interests us here. Baystate argued that it could not be held liable for breach of contract because the Copyright Act preempted the license provision forbidding reverse engineering. The Federal Circuit disagreed.

Should anti-reverse engineering provisions in shrinkwrap licenses be enforced? To answer that question, it's necessary to look at intellectual property rights, computer software, and reverse engineering more generally.

Software: A Mix of Public Domain and Private Intellectual Property

Original expression in computer source code - for example, code that describes a procedure or formula that instructs a computer's microprocessor - may be copyrighted. Moreover, if a procedure itself is sufficiently useful and novel, it may also (or alternatively) be patented.

However, the same software that contains protected intellectual property may also contain unprotected, public domain elements - such as commonly-used algorithms and sub-routines. From software companies' perspective, use of public domain code to provide basic functionality often makes sense: why write code from scratch when tested, functional, free code is available for the taking?

In the case of most creative works -- think of books, films, or music -- while particular expression may be protected, the underlying ideas and other unprotected elements are made available to others for use simply by virtue of publication. Thus, although the particular expression contained in a poem may be subject to copyright, the idea behind that poem is available to a rival poet once the poem is published.

The same is not true of software. Commercially developed software products are ordinarily distributed in the form of object code - that is, binary language that is intelligible only to a computer. The original source code - that is, the human-readable programming statements that are created by a programmer and compiled into object code - is typically kept secret by the software vendor. Moreover, running the object code on a computer tells you very little about the original source code. Accordingly, public distribution of the software does not lead automatically to public disclosure of the software's unprotected elements.

That is where reverse engineering comes in. Reverse engineering is the use of engineering techniques to discover the underlying ideas and principles that govern how a machine, computer program, or other device works. As applied to computer software, reverse engineering is the process of decompiling or "disassembling" machine-readable software object code to provide a rough approximation of the original source code.

The Institute of Electrical and Electronics Engineers has issued a policy statement supporting the use of reverse engineering as a means to ensure interoperability. The IEEE also considers the process more broadly beneficial because it fosters the wide dissemination of public domain programming ideas.

Reverse Engineering, Copyright, and "Fair Use"

Reverse engineering typically requires that a copy be made of the program's object code. Accordingly, the process often involves copyright infringement. But not all unauthorized copying of protected material is sanctionable: copying for the purpose of reverse engineering may be defensible as a fair use of a copyrighted work.

Of course, using protected elements of a software program that one has obtained through reverse engineering (i.e., what Baystate appears to have done) is generally not "fair use."

But what about the reverse engineering process itself? Consider that it typically leads to the discovery not only of protected elements that cannot be legally used, but of non-protected elements that can be.

In light of this fact, shouldn't reverse engineering be protected as a fair use, as long as it does not lead to the use of protected elements? The U.S. Courts of Appeals for the Ninth Circuit and the Federal Circuit have both answered yes, and they were correct to do so.

The two leading cases, Atari Games Corp. v. Nintendo of America, Inc. and Sega Enterprises v. Accolade, Inc., both involved the same issue: Can a video game author legally reverse engineer software contained in computer game consoles, in order to decipher the unprotected security codes necessary for game cartridges to operate on the consoles?

Both courts held that such reverse engineering was fair use. (In the Atari case, however, the court nonetheless denied the defendant fair use protection, because it had procured Nintendo's source code under false pretenses.)

Are Anti-Reverse Engineering Provisions in Shrinkwrap and Browsewrap Licenses Preempted?

The recent Federal Circuit decision in Bowers addressed, in particular, a type of contract called a shrinkwrap license. Shrinkwrap licenses are agreements between a software vendor and an end user. Users are said to have agreed to such contracts when they remove the shrinkwrap or cellophane packaging from a software box, or when they click "I accept" before downloading (leading to what is often called a "browsewrap" license).

Whether shrinkwrap or browsewrap, these licenses are boilerplate, and are not typically subject to negotiation: The user must take them or leave them (and if he leaves them, must leave the software behind too).

Why wouldn't anti-reverse engineering provisions in such contracts be enforceable? The answer is that the state contract law that would render them enforceable may be preempted by federal law - and specifically, by federal copyright law.

When federal law conflicts with state law, federal law often trumps. And in particular, Section 301 of the Copyright Act expressly preempts state-created or state-enforced rights "that are equivalent to any of the exclusive rights within the general scope of copyright . . . ." The basic message is that Congress has set up the copyright scheme, and the states don't get to modify it or interfere with it.

What does Section 301 mean when it refers to "equivalent" state and federal rights? Courts have said that state prohibitions - including contract provisions enforceable under state law - are "equivalent" to federal ones when the conditions for the infringement of the state and the federal right are the same. But if infringement of the state-created right requires something more, it is not "equivalent." This is known as the "extra element" test.

Do Contract Rights Always Have the "Extra Element" To Save Them From Preemption?

So what about an anti-reverse engineering provision in a shrinkwrap or browsewrap license? Does such a provision have the "extra element"? The Bowers court, relying on the Seventh Circuit's 1996 decision in ProCD, Inc. v. Zeidenberg, held that it does.

Unlike the general rights "against the world" that the copyright law gives every creator, the court reasoned, contract rights require "generally affect only their parties" and require the "extra element" of the parties' mutual assent and consideration (the law's term for something of value exchanged). Thus, according to the court's reasoning, anti-reverse engineering provisions in software licenses are not preempted by federal copyright law. Indeed, more broadly, no contract right will ever be pre-empted, for every contract right has an extra element: the contract.

The Problem With A Rule That Contract Rights Are Never Pre-empted

When the situation is viewed this way, suddenly the court's idea that copyright law gives general rights, and shrinkwrap contracts do not, seems less than compelling. It reality, enforcement of a general, boilerplate shrinkwrap anti-reverse engineering provision is tantamount to allowing software vendors to prohibit on a wide scale what the intellectual property laws would otherwise permit. Federal copyright law generally allows reverse-engineering as a "fair use" - and then the vendor, in effect, generally outlaws it, at least insofar as its own software is concerned.

Such a result does not fit well with the broader goals of our intellectual property laws. As the Supreme Court noted in another reverse engineering case - Bonito Boats, Inc. v . Thunder Craft Boats, Inc. - the federal intellectual property laws "have embodied a careful balance between the need to promote innovation and the recognition that imitation and refinements through imitation are both necessary to invention itself and the very lifeblood of a competitive economy." Part of this careful balance, according to the Court, is "substantially free trade in publicly known, unpatented design and utilitarian conceptions."

On that basis, the Court held in Bonito Boats that a Florida statute that prohibited the reverse engineering of unpatented boat hulls was preempted by federal patent law. While the facts are quite different from the facts of Bowers, the principle is the same. As in Bonito Boats, the effect of the anti-reverse engineering provision at issue in Bowers is to substantially restrain free trade in public domain ideas and expression - trade that is vital to innovation in the software industry.

Computer object code, as mentioned above, generally cannot be understood by humans without reverse engineering. As a result, enforcing shrinkwrap anti-reverse engineering provisions will mean that software vendors enjoy exclusive rights over both protected and unprotected content. The public domain will be the poorer for that, and Congress's careful balance will have been subverted.

Chris Sprigman is Counsel to the Litigation and Antitrust Group in the Washington, D.C. office of King & Spalding. Mr. Sprigman previously served as appellate counsel to the Antitrust Division of the U.S. Department of Justice.

Was this helpful?

Copied to clipboard