Is it legal to add support for a 3rd party file format in my application by reverse engineer a unencrypted binary file format from another application, and reading the contents?
问题:
回答1:
Depends on your location. In the EU it is specifically permitted (article 6 EU software convention) to "reverse engineer file formats for the purpose of interoperability"
In general it's hard to prevent someone reading a file format, there have been examples where you are prohibeted from writing a file because the format contains patented technology (if software patents are allowed in your country). This was the case with GIF for a number of years.
回答2:
Depends on the format in question, your location, etc. And this is not "cracking", more like "reverse engineering".
Consult a lawyer, with licenses of the applications that produce the formats!
回答3:
ArsTechnica recently published a nice article about the legality of reverse engineering in the context of Google Chrome using undocumented behavior in windows for some of it's security protections (to achieve DEP on some versions of Windows XP, for example).
回答4:
IANAL, but yes, I'm pretty sure it is legal, as long as you don't circumvent some copy-protection system or something. See as an example OpenOffice being able to read Word documents.
回答5:
It all depends on the laws in your country and the intent behind which you are reverse engineering the file format. You need to check with an attorney/lawyer/barrister to be certain. Have you checked with the company that owns the file format to see if there is a published spec or other information that would allow you to interoperate without the need to reverse engineer?
回答6:
I wonder if this is covered by the DMCA in the US? As always, your best bet is to ask a lawyer.
回答7:
If you have to violate the terms of an EULA to do so, it is illegal. Although most states have laws expressly permitting reverse engineering, it is my understanding that that is not an 'inalienable right', but one you can waive contractually. (In other words, permitting reverse engineering does not prevent you from agreeing not to anyway.) Some jurisdictions go further, however, and explicitly state that reverse engineering is always permitted, even if a contract states otherwise.
If you live in the US, the DMCA generally prohibits reverse engineering if you have to circumvent a "copy protection technology" to do so, but it makes specific exception for cirucumventing it for the purpose of making something compatiable with the format.
Otherwise, it is probably legal. Regardless of the answer here, though, consult a lawyer.