The scenario is the following: a proprietary software can save files in its own file format. I want to build a free/open-source software capable of decoding those files for further processing.Given that there is no documentation for the file format, I create a few files and reverse engineer them. After experimenting with them and after understanding the rules behind them, I write my software. Note that I only worked with the files, I didn't attempt to disassemble the proprietary software itself.Now, supposing there are no patents covering the file format, can I release my software to the public? Are patents the only thing I should worry about? Can the software license restrict what I can do with the files it produces?
Am I free to distribute a software for a file format that was reverse engineered?
licensing;law;file formats
Disclaimer: IANAL, and this strikes me as an area where the principle that 'anyone can sue anyone' might be sadly relevant.This will depend on the nature of the intellectual property of the file format. So, let's imagine that there is proprietary software package that produces and consumes this format, and that the producers of that software considers the file format to be proprietary, and perhaps even 'trade secret'. Very likely, their license will not permit reverse engineering. Depending on whether this license is a click-through, a shrink-wrap, or a real, signed, SLA, and depending on the jurisdiction, this lack of permission may be enforceable, or it may not.However, if the owner is trying to prevent reverse-engineering, and you have reverse-engineered, and you make a public spectacle of that fact, you are painting a 'please sue me' sign on your forehead. Will you be sued? Who knows? It depends on how seriously the particular vendor takes this question.Now, I've tried to paint the most scary scenario here that I could, since you didn't provide details. Maybe the company in question doesn't care, or doesn't exist any longer. Maybe the format is an open secret. Maybe their license doesn't try to prevent this. But the situation I described is fairly typical.