When is it Legal to Reverse Engineer Software?
A not-so Anonymous
Coward asks: "I'm the lead developer of
SciGraphica, an open
source application for scientific graphics that runs under Linux, and is
based on Microcal Origin, the
commercial application for Windows. When we contacted this company,
they let us know that a port for Linux or other operating systems was not in
their plans, and that they were not willing to make their proprietary file format
available. However, we realized that it is in fact easy to reverse engineer to create a
filter that would allow our program to read Origin files. Are we walking
into a case of patent infringement, or this is a legitimate solution? If this is
problematic, is there a way to allow people to legally have access to the
filter?"
I'm the lead developer of SciGraphica, an open source application for scientific graphics that runs under Linux, and is based on Microcal Origin, the commercial application for Windows. When we contacted this company, they let us know that a port for Linux or other operating systems was not in their plans, and that they were not willing to make their proprietary file format available.
... dumb, but normal ...
... just write your program to use the Origin files as their native file format ... and don't be surprised if the company changes the format to break interoperability ... it's been done before.
... don't go poking around in the binary with a debugger or hex editor. The file format may not be protectable but the code itself damn sure IS.
Normal
However, we realized that it is in fact easy to reverse engineer to create a filter that would allow our program to read Origin files. Are we walking into a case of patent infringement, or this is a legitimate solution?
File formats are not patentable nor are they copyrightable. If they were there would be no interoperability between word processors and WordPerfect would still be the standard for WP software because MS couldn't have wedged into the market without being able to interoperate. Yes, reverse-engineering the file format is perfectly legitimate. Do you think Star Division licensed the MS Office file formats from Microsoft?
If this is problematic, is there a way to allow people to legally have access to the filter?
Filter? What filter
As for giving others access to the "filter" you DID say this was an Open Source app, right? Just GPL whatever solution you create and then give it away. However, make sure that the ONLY thing you examine is the data files
utter rubbish
or call a lawyer well versed in technology and patent law.
I used to work for a small point-of-sale company. We had one programmer who's entire purpose in life was to do data conversions. If the competing company wouldn't open up their file format, he'd tear it apart in order to import our customer's existing data into our own system.
Sometimes it was even simpler: tell the old software to dump a full report to text file, massage with your own tools, then re-import into the new app. :)
I never heard of any legal scuffles as a result. And we'd often release (to customers) small utilities that would do the conversions.
I mean, there's an entire class of software devoted to pulling data from various closed formats. Given the extensive lists of some (I can't recall any names right now), I find it hard to believe they "licensed" the right to read those file formats from every single company.
On a related note, there are 2 apps that I'd love to see on Linux, but only have Windows versions. The first is the Unabridged Oxford English Dictionary 2nd Edition on CD-ROM, and the other is that huge CD-ROM collection from National Geographic that spans from 1888-2000 (or there abouts). Quite a project, to be sure, and I've always wondered myself if I'd catch hell if I ever figured out the DB structures and released the code to the OSS community.
Method of processing duck feet
As long as you can prove that you're working from pure deduction, you should be fine.
Check out this Cringely piece on reverse engineering.
nz
Microsoft claims they are - they patented the ASF file format, and forced the author of VirtualDub to remove ASF reading support from his program. See http://www.advogato.org/article/101.html.
A quote:
Ah, but the cracking of encryption is only illegal when used to control access to a copyrighted work, without permission of the copyright holder.
Since it would be their own data they'd be cracking, it wouldn't be a DMCA violation. Or are you suggesting that "all their data are belong to MicroCal"?
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
That said, this is a classic case for what we call a compulsory license. Because your vendor does not offer software on a particular platform and you can demonstrate a legitimate need to reverse engineer their software just to make your software work, you should be free and clear. Off the top of my head, your right to do this is protected by the Federal case law created in State of Illinois vs. Netscape Communications Corporation, Horowitz vs. Franklin, and Digital Equipment Corporation vs. IBM. These cases are definitely worth citing when you visit your lawyer (or get sued).
~wally
Nice try. Next time use your Slashdot login and you will get an "interesting" or "insightful" instead of "troll"...
A man who wants nothing is invincible
In Europe, it is, among others, legal as soon as it is for debugging or interoperability purposes, and the only means to do so. Here's the law that says it.
The Digital Millienium Copyright Act, while not applying to file formats or reverse engineering, DO apply to encryption. Now, you can go ahead and create and distribute your filter without a problem.
*BZZT* Nope, wrong. Encryption has nothing to do with it.
To quote the DMCA:
(2) No person shall manufacture, import, offer to the public, provide, or otherwise traffic in any technology, product, service, device, component, or part thereof, that--
``(A) is primarily designed or produced for the purpose of circumventing a technological measure that effectively controls access to a work protected under this title;
``(B) has only limited commercially significant purpose or use other than to circumvent a technological measure that effectively controls access to a work protected under this title;
Since the contents of the file format are copyrighted material, the file format itself "effectively prohibits access" to the work. Writing a filter that's sole purpose is to read this file format is indeed a violation of the DMCA.
Now a common misconception is that you can use the following section as an excuse:
(f ) Reverse Engineering.--(1) Notwithstanding the provisions of subsection (a)(1)(A), a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability
But you'd be wrong - because this only allows you to reverse engineer the program - it says nothing about the file formats used by the program.
Engineering firms that do Human-Machine Interfaces do tons of reverse engineering.... If the goverment, the bsa, and other groups were to keep egineering firms from reverse engineering stuff... there would be no advacnes in plant control technology, plus in order to improve the systems, everything would have to get replaced, from the programable logic controler in some cases, to the network wireing, and up. Hell, some sapp wouldnt have his nice ORDT software if it wasen't for some acts of reverse engineering.