There are two separate legality issues:CRoberson wrote:Many are using the term RE (reverse engineering) improperly, thus confusing the issues. Legal RE is a process not a task. If you cut the process short and stop with the task, it is illegal.
1) is it legal to perform the decompilation of the old program?
2) does the new program infringe the copyright on the old program?
For 2) the clean room process ensures that the new program does not infringe the copyright on the old program PROVIDED THAT the information passed between the two teams is free of any copyrightable elements of the old program. If the translation of the old decompiled code into natural language was done mechanically, the natural language version is probably not free of the copyright on the old program. More generally, this is a question of how broad the copyright on software is. I believe it is quite narrow (basically protecting only the expression in code), so that normally you will be fine.
If you DO cut the process short, e.g. by letting the same team do both the decompilation and the coding of the new program, you can still be fine. But now any copyrightable elements in the new program may be presumed to be copied from the old program. But this is still about the expression in code, not about the functionality. It is OK to copy functionality. So if you do cut it short, you have to be more careful, but you're not doomed to fail.
If you start with the decompiled source code and adapt that code, then you will most likely end up with a new program that infringes the copyright on the old. But if you only study the decompiled source code to extract ideas and (even detailed) functionality, you are fine from the point of view of copyright.With Robbo/Ippo, those that reuse the decompiled source code are doing something illegal - here I mean grab Robbo/Ippo and use it as the starting point for your program and tweak it. If your RE process is tasks 1 and 2 skipping the rest, then it is illegal.
Agreed, but those "abstract" ideas can be quite detailed. Copyright does not protect the functionality of a program.Given that nodoby has written a report on its inner workings, the rest can only read it for abstract ideas. Then they can come up with their own coding of those abstract ideas in their own programs which they started from scratch.