Not really. It's more US thing where a license can try to forbid Reverse Engineering, and you end up with things like clean room RE based on supreme court case.
Meanwhile for example in Poland (EU member), it's illegal to forbid reverse engineering - any claim in a contract, license or not, that forbids such is null & void. Because the copyright law has a paragraph about how "reverse engineering is a right of everyone." - the only thing is that you can't just recompile reversed code and claim it's yours (that would be copyright violation).
In the United States, clean room reverse engineering is legal for interoperability purposes. In general reverse engineering is legal unless there is a contract involved prohibiting it.
Unless you’re reusing the original source code, there’s no copyright violation per se, simply functionality reimplemented in a compatible manner. The lengths that ReactOS goes to might actually be overkill, but no one can credibly claim the project has actually stolen anyone’s code.
> Clean-room reverse engineering is only useful in a world where APIs aren't copyrightable.
I disagree. However, I am not aware of any caselaw on this point. It is an interesting logical twist you have added, but I fail to see how it must be that way in view of the fact that copyright explicitly allows clean-room type reverse engineering.
Yes, clean-room reimplementations are legal everywhere. The problem with this code is it's not clean room. This leaves commercial users open to serious accusations of copyright infringement (as in, criminal prosecution.) See my comments in the thread. IANAL and my analysis is based on the README of the project.
Australian lawyers from the top of Google Search results say that it can be if done careful:
> Generally, where a computer program is reverse engineered by copying the idea of the function presented in the program code, the original computer programmer’s copyright is not infringed. Where a computer program’s expressions in code are reproduced or adapted (including into a different computer programming language), the original computer program’s copyright is likely to be infringed. This means that where reverse engineering occurs by “clean room” design, Australian courts are unlikely to find that there has been an infringement of the original author’s copyright.
Depends on how you reverse engineer. If you just throw a compiled binary into a decompiler, rename the variables and release that, you're probably breaking the copyright law in whichever country you reside.
AFAIU, in the US to be on the safe side, you need to apply clean room reverse engineering, no matter the goal. In the EU, as soon as it's in the name of interoperability, reverse engineering is fine:
> The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program.
Directive 2009/24/EC
This would allow you to disassemble and modify any parts of OSX and its drivers in order to help write a Linux driver. Does the same apply in the US?
I'm thinking of stuff like the re-implementation of the IBM bios where the re-implementation had to effectively match a certain undocumented specification but not necessarily follow the actual implementation from the original bios
but in some sense clean-room reverse engineering does necessarily entail that certain things will be identical, and I guess the scenario in the article could be describing a situation where none of the final product matches the original template at all, so maybe it is slightly different, and in that case I guess there wouldn't be a copyright issue at all?
It would be more like how when movies are made they tend to use existing music as a placeholder until the final music is made, and it doesn't seem like anyone considers the final movie to require a license from the creator of the placeholder song even though the direction of the final work is often strongly influenced by its pacing
It's not illegal to come up with code that is exactly the same as an existing piece of copyrighted code.
It is illegal to take copyrighted code and reproduce and distribute it against its license, however.
It's the difference between original writing and plagiarism. You might come up with a substantially similar, to exact, point that other people have made. That's not illegal. Copying those points from a book verbatim is a copyright violation, however.
Copilot is reproducing copyrighted code from its training set. That's no different than you reading the leaked Windows source code and then copying it to ReactOS or WINE. But if you came with the same solution Windows developers happened to come up with, and it's just a coincidence, that's just fine.
"It is not considered infringement of the copyright in a work referred to in Article 10, first paragraph, under 12°, if a copy is made of that work and the code is translated, in the case that these acts are indispensable to obtain the information which is necessary in order to achieve the interoperability of an independently manufactured computer program with other computer programs, provided that:
a. these acts are performed by a person who has gained access to lawfully obtained copy of the computer program or by a third person authorized by him;
b. the data that are necessary in order to achieve the interoperability, are not alreadyquickly and readily available to the persons referred to in point a;
c. these operations are confined to the parts of the original computer program which are necessary to achieve interoperability."
"Unless otherwise agreed, is not considered an infringement of the copyright in a work referred to in Article 10, first paragraph, under 12°, to reproduce the work ?by a lawful acquirer of aforementioned work with its intended use. The reproduction referred to in the first sentence, which takes place in the context of starting up, visualizing something, or correcting errors, can not be prohibited by contract."
That correcting errors by the customer cannot be prohibited by an EULA is something Oracle probably won't like. :-)
Copyright omly regulates copying and redistribution, not use. So the act of reverse engineering itself is not illegal under copyright. There might be concerns with contract law however, although many arguments such as unconscionability could be used against it.
What Exceptions Does DMCA Section 1201 Have To Allow Reverse Engineering?
Section 1201 contains an exception for reverse
engineering, as well as security research, encryption
research, and the distribution of security tools, all of
which may support reverse engineering. However, these
exceptions are drafted very narrowly. If your research
might implicate section 1201, consult a lawyer to see if
you can do your work in a way that is allowed by one of
the relevant exceptions or by an exemption periodically
granted by the Copyright Office. The following factors
are relevant to whether you are entitled to a reverse
engineering, research or security exception. However,
meeting any or all of these factors will not necessarily
protect your work. The list is offered just to give you
an idea of the kinds of things that distinguish
permissible from impermissible reverse engineering:
You lawfully obtained the right to use a computer
program;
You disclosed the information you obtained in a good
faith manner that did not enable or promote
copyright infringement or computer fraud;
Your sole purpose in circumventing is identifying
and analyzing parts of the program needed to achieve
interoperability;
The reverse engineering will reveal information
necessary to achieve interoperability;
Any interoperable program you created as a result of
the reverse engineering is non-infringing;
You have authorization from the owner or operator of
the reverse engineered software or the protected
computer system to do your research;
You are engaged in a legitimate course of study, are
employed, or are appropriately trained or
experienced, in the field of encryption technology.
You provide timely notice of your findings to the
copyright owner.
Clean-room reverse engineering produces an implementation that is not a derivative of the original implementation. But if the API itself is copyrightable as a separate work from the implementation, then you have to consider whether the API of the reverse engineered implementation is a derivative of the API of the original implementation. The answer to this question is rather obviously yes, since the reverse engineering process is all about separating the API from the implementation and copying only the former. Clean-room reverse engineering is only useful in a world where APIs aren't copyrightable.
No clue where you're based, but in the EU, this is legal. You are allowed to replicate and reverse engineer systems, as long as you do not use the original source code.
I wonder about the interplay of this with the DMCA. I suspect that the statement that it's "legal to reverse-engineer code" may still have significant caveats...
Clean room design of software has absolutely nothing to do with copyright because software concepts cannot be copyrighted. I would encourage you to study these legal concepts further before you debate them, because you’re coming off quite uninformed. Copyright has a specific purpose and specific limits. Studying a competitive software product and cloning it (even non clean room) is, again, not a copyright violation unless you’re literally pulling code from the competitive product. Nearly all clean rooms are to avoid patents and specific implementation thereof in the software space. This is different when it comes to other fields, so I get the confusion.
Theft of intellectual property in the case you cited also barely touches copyright. Put another way, copyright status of the property in question is largely immaterial to securing a conviction on the allegation.
You can very much be sued for working on a proprietary project and then trying to reproduce it somewhere else. That's why clean-room reimplementations have to make sure that no contributor has seen the original code.
Meanwhile for example in Poland (EU member), it's illegal to forbid reverse engineering - any claim in a contract, license or not, that forbids such is null & void. Because the copyright law has a paragraph about how "reverse engineering is a right of everyone." - the only thing is that you can't just recompile reversed code and claim it's yours (that would be copyright violation).
reply