Hacker News new | past | comments | ask | show | jobs | submit login

Note that reverse engineering does not have to be clean room, poking at hardware without ever seeing any software. In many places, poking at the proprietary software, decompiling it, tracing it, and so forth is fine despite what unenforcable EULA's might suggest. What is not okay is taking the binaries or decompiled source verbatim and re-distributing it.

Note that e.g. copyright does not apply to decompiled source code (the original authors did not write the decompiled source, unlikely assets taken verbatim - maybe that's where the arguments you mention stem from - although note that there may be regional regulatory differences). Instead, the things that might cause issues are things like the enforceable parts of the software license, any enforceable patents on the functionality, or enforceable platform license restrictions for applications built based on decompiled source.




Copyright does apply to decompiled source code (it's a derivative work of the binary).

However, reverse engineering is allowed explicitly (...in several countries, ask a local lawyer!) for the purpose of interoperability, and sometimes for certain kinds of research. In those cases, what would otherwise be cooyright infringement is permitted.

If you're not doing it for those reasons (e.g. to attain exacting bug-for-bug levels of compatibility with a proprietary system, as is often needed in emulators), if in fact you could use any threading library, you don't then get to take an unrelated library and file the serial numbers off.


To be clear, a derivative work is copyright of the one creating the derivative, not the original author.

The question is whether creating the derivative work of that specific transformative nature is allowed. Unlike assets taken verbatim, this requires evaluating the exact instance. A binary decompilation is importantly not a simple translation, as that would be entirely unusable - rather, it is like creating blueprints for a finished building.

This is in part why licenses aim to manage and in part restrict you through a contract with the author, using a formally granted usage right to the entity as leverage for complying with a bunch of conditions, orthogonal to the copyright.

Your point stands though, my statement was not as accurate as it could have been.


I really do not know what you're trying to nitpick here, but note that if you create a not-original-enough derivative work (which is what is happening here), you will not have any copyright whatsoever. Neither you nor the original author.

Binary decompilation is also the textbook definition of a "simple translation". It is almost always done with a mathematical formula aka algorithm and the resulting program is not only identical in observable behavior to the original one, it is also identical in the non-observable behavior (I.e. bit by bit identical on-memory data structures). The chance that you can end up with such identical program without looking at the original one is zero for anything but the most trivial programs.

Licenses are also almost totally irrelevant (even in this context) and for most software they are only enforceable by copyright anyway (e.g. the temporary on memory copies to load the program).

I do not understand what to see here that even has a hint of originality. This is why clean room is super important, even if not strictly necessary: it goes a long way to convince that the implementations do not come from the same source even if they are related.


> Note that e.g. copyright does not apply to decompiled source code

Where does this non-sense come from exactly? Are you claiming the decompiled source code is not a derivative work? It is almost a text-book definition of one (in much the same way the executable is...).

There are some situations (and this depends on your legislation) in which _violating_ copyright is lawful (e.g. in the EU, if it is _strictly necessary_ to do so for interoperability reasons -- think cryptography for network equipment; a decade ago I used to work on this!). But blanket distribution of decompiled proprietary (or GPL'd!) binaries _is_ a copyright violation (literally textbook, as "decompilation" is quite an example of an automated translation). And frankly, I have no idea what kind of confusion of ideas makes these people believe it is OK to distribute game code publicly. Or why it would be OK for code but not for assets. (And it has nothing to do with patents).


> the original authors did not write the decompiled source

This isn't anything new or unique to programming. In the same way if I were to transcribe a movie (let's say it's a silent movie) to a script, it would still be that movie. Or if I were to translate a book into Klingon . Or even do a cover song of "Beat It" entirely with throat singing. Copyright would still apply.


> Or even do a cover song of "Beat It" entirely with throat singing. Copyright would still apply.

bad example, in this specific case copyright would actually not apply


Could you explain why not? That's exactly the kind of thing a mechanical license would give: the right to cover a song. The difference with music is by law they have to let you obain a compulsory mechanical license.


Sony Computer Entertainment v. Connectix Corp.

> The object code of a program may be copyrighted as expression, 17 U.S.C. § 102(a), but it also contains ideas and performs functions that are not entitled to copyright protection. See 17 U.S.C. § 102(b).

> Object code cannot, however, be read by humans.

> The unprotected ideas and functions of the code therefore are frequently undiscoverable in the absence of investigation and translation that may require copying the copyrighted material.

> We conclude that, under the facts of this case and our precedent, Connectix's intermediate copying and use of Sony's copyrighted BIOS was a fair use for the purpose of gaining access to the unprotected elements of Sony's software.

Not only are the methods of operation which underlie the code completely unprotected by copyright, the copying of and the application of tools to the code for the purpose of exercising your right to discover those unprotected elements is fair use.


That doesn't cover mainstream distribution. Fair use is only "intermediate copying" for translation. That doesn't mean copyright doesn't apply. Even the part you quoted still refers to it as "copyrighted material" and "copyrighted BIOS".


It absolutely covers the distribution of your implementation of the unprotected ideas and elements.


Which is not the same thing as decompiled code, because that's their implementation.


oh i misunderstood, i was thinking about live performances. unfortunately you do technically have to obtain a license from the composer in order to sell a recording of a cover.


The method of operation is not protected by copyright. You can write a program that works just like the proprietary software.


Yeah, good luck explaining to any judge that by chance you wrote a program that oh it hust happens to be identical to a copyrighted one. It even loads the same data files and save files.


Two programs can work the same way and still be distinct, independently developed works. This is especially true of programs that have to work in certain ways in order to be compatible.

Game companies back then had a "trademark security system". Their hardware wouldn't execute your software unless you wrote the company's name to some memory location somewhere. If you did that and you didn't have a license, they'd sue you for trademark infringement.

Well it went to court and judges found that not only was this "infringement" fair, it was the trademark holders themselves who were at fault for creating this stupid system where competitors had to infringe their trademarks in order to create interoperable software.

https://en.wikipedia.org/wiki/Sega_v._Accolade

> Accolade's decompilation of the Sega software constituted fair use.

> the use of the software was non-exploitative, despite being commercial

> the trademark infringement, being required by the TMSS for a Genesis game to run on the system, was inadvertently triggered by a fair use act and the fault of Sega for causing false labeling

Such was the wonderful world before the DMCA and its criminalization of "circumvention".

The hard part isn't explaining things to judges, it's coming up with the fortunes necessary to pay lawyers to do it. That's why the big corporations have the advantage. They can afford to be wrong. In fact, it is literally their strategy to outlast their opponents in court by burning their money in legal fees. They can afford it, small companies can't and individuals will be literally bankrupted.


> Two programs can work the same way and still be distinct, independently developed works. This is especially true of programs that have to work in certain ways in order to be compatible.

This is like if a state lottery employee would claim "oh, but there are other recorded cases of people winning the lottery 2 times" to justify why he in particular won it 300 times in a row.

It is one thing for two similar implementations to appear from different sources (and a rather probable thing at that). What I said is that it is impossible for two _identical_ implementations to appear from two different sources, for anything but the most trivial of programs.

Again, a decompiled program will not only work the same way as the original in the observable external behavior, it will also be identical even in its internal behavior (state machines, and everything). If you even admit that were literally looking at the first implementation while you were implementing the second one, or worse, that in fact it is an automated translation of it.... how can you even start to justify having a legal case? What do you exactly think copyright is for?

> If you did that and you didn't have a license, they'd sue you for trademark infringement.

FYI, this is _precisely_ what is actually allowed by the interoperability clause, at least in the EU. i.e. this "nintendo logo" trick was pointless back then and it is definitely pointless now. In simple terms, when there is _no other way_ to interoperate you are allowed to _violate copyright_ (i.e. re-distribute possibly copyrighted material without permission) to the extent that is required to allow this interoperability. For example, if company X decides to develop an encrypted protocol with a "proprietary" encryption algorithm, you may be allowed to re-distribute a subset of company X's encryption code (incl. key material) in order to talk with company X's hardware. This is allowed, and in fact my previous company used to do this (with utmost care).

But it does NOT mean that you can now re-distribute ALL of company X's software, use the entire firmware of company X's devices to create your own copycats, create tools to help others violate company X's copyright, or anything like. There's no way to interpret this provision in a way that allows you to free lunch.

Also note that even in this case you still _cannot_ (legally) use a trademark (e.g. you can't show the USB TM logo in your product's box), but no judge in the world will argue that using a hash of a logo as an encryption key is "using" the trademark. Laws are written for humans, not machines.

> https://en.wikipedia.org/wiki/Sega_v._Accolade

You keep posting this link even though many people have already told you it really doesn't mean what you think. I'm not an expert in US law, but even I can imagine that this case didn't really allow Accolade from suddenly being able to re-distribute Sega games nor their decompiled Sega game code. At most, it allowed them to use the decompiled Sega game code to develop their own Sega-hardware-compatible games, something which (unsurprisingly) looks very familiar to what I was explaining above about how it works in the EU.

> Such was the wonderful world before the DMCA and its criminalization of "circumvention".

DMCA has very little to do with anything of this. You still cannot violate copyright even if there was nothing to circumvent.

> The hard part isn't explaining things to judges, it's coming up with the fortunes necessary to pay lawyers to do it. That's why the big corporations have the advantage.

Let me guess: you are one of those who believe big corporations will have a harder time if copyright is abolished.

Let me tell you what will happen: big corporations will immediately self-appropriate all software from "small" corporations. Almost all open source software will disappear as a result (know many FLOSS people who are happy releasing PD software? not even BSD people are -- they require attribution). And instead of getting the "oh all software is free world" that you expect, you will instead get a world of incredibly invasive DRM schemas, complicated and expensive hardware protection systems, and binary code guarded behind closed doors in big farms and you can never dream of executing outside corporate security eyes. Reverse engineering it will still be possible of course... but only if you have infinite resources, like those of another mega-corp, with an army of engineers at your disposal.

I know this because I have seen it -- this is the world of industrial "our entire million dollar business is basically one algorithm" CAD software, where your competitors do not really care about mortal nuisances such as copyright. What Sega, Nintendo, etc. do as DRM is basically just child's play so that piracy doesn't become too widespread, but nothing more.

So not only will the bigger fish still eat the smaller ones, you will not even have the courts to at least try to protect the medium size fish.


> Note that e.g. copyright does not apply to decompiled source code

This is absolutely not true. I've been seeing this claim for years, and it's complete nonsense. Otherwise I'd be able to decompile the entirety of Microsoft Windows and then just redistribute it as my own source code.

> the original authors did not write the decompiled source

The original authors also did not write the compiled binary. The copyright still applies to it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: