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?"
~~~
It's whether or not it's legal for a software firm to market only to a specific operating system.
Reasoning states that it's completely illegal for a software firm to only sell to a single operating system manufacturer without giving their code to other operating-systems so that they can produce a workable solution.
Picture this: Hot-Dog Bob buys Ketchup from Heinz. Heinz refuses to sell ketchup to ANY other stand, because they like the way Bob does business. Is this legal, to deprive all the other Hot-Dog stands of a widely used condiment on the basis that they like the way bob does business? (without even adressing the concerns of the other hot-dog owners in general?)
I don't really think so. Software is as basic a part of computing as the operating system is, and being that way, the company should be required to allow distribution of their specific application across a multitude of platforms. After all, that's all software really does: a function, a thing. A tomato-taste.
Are we walking into a case of patent infringement
Have you searched?
Of course it's legal for a firm to market software that runs on only one platform. You can't require a company to make products for all available markets and users. You can't, in fact, require a business to do business with anyone. What you can do is require that a company not treat equivalent buyers in different ways: if you offer a discount for orders of ketchup by the case, then you have to give all the purchasers the discount. But even that is fuzzy, as defining "equivalent buyers" is pretty much up to the company.
I can't believe that got modded up
Although I am not sure on the legality of the issue, it is common practice to reverse engineer file formats. What concerns me is the act being viewed as stealing raw data from a file. So what I would think that it would be legal to reverse engineer the format, but not steal the data within those files. This would allow you to create your own files based on your data and have the same file format.
**Insert "I Am Not A Lawyer" header**
**Insert open source statement, explaining everything should be free as in beer**
**Insert obligatory anti-Microsoft statement**
**Insert funny sig**
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
Heinz would, in fact, have some legal standing if they had to rewrite the "ketchup code" for each of the other vendors.
So it's really not the same at all.
Heinz would, in fact, have some legal standing if they had to rewrite the "ketchup code" for each of the other vendors.
:)
So it's really not the same at all.
(And how the heck can I delete an accidental post anyway? That AC above is me and I need/want the karma points!
Adding a bit more as I wait for 2 minutes...
As for legality, the DMCA would have us believe it's not legal at all, however, I believe that depends on the manner of reverse-engineering. The code itself is apparently off-limits, but I wouldn't think the file-format couldn't be poked and prodded to the same end.
IANAL, ITALITH (Is There A Lawyer In The House) who can refute this?
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:
Many licenses forbid you to reverse engineer software. I'm not sure how they get away with or enforce this. Anyway, if that's not in there, you can use the reverse engineered code up to whatever amount is permitted by the fair use doctrine. As for patents, I seriously doubt they bothered but you ought to check just in case.
Now, the problem you MIGHT, run into, is if they decide to change this format with a small "bug fix" patch. They could provide to conversion utility for current users. This patch could simply apply trivial encryption to the files and you would be (legally) powerless to reverse engineer or "crack" it.
Just another reason the DMCA goes way beyond its bounds.
The question should be:
"When is it illegal to reverse engineer (software)?"
Or perhaps "Why is it illegal to reverse engineer (software)?"
Not that this will keep bastards from attempting to thwart you with lawyers, paper and ink.
I see nothing wrong in reverse engineering a file format. I've written such tools before. It's done all the time, even by the big guys. Microsoft reads WordPerfect and visa-versa. Used to be Lotus 1-2-3 and Excel could swap files. And look at Sun's StarOffice--reads and writes MS Office file formats. When I was working at NASA, the most popular piece of software we had for Macs and PCs on our Network was MacLink for converting popular Mac formats (like MacWord) to PC formats (like WordStar and WordPerfect; a time before Windows).
"Love is a familiar; Love is a devil: there is no evil angel but Love." --William Shakespeare ('Love's Labors Lost')
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
"Just Do It" as nike says it wont really matter and it wont hurt if you dont tell them c'mon now who hasnt copied a micro$oft product and just look at it my way since micro$oft is counted as a monopoly and since monopolies are illegal in the united states micro$oft is really just an illegal company whit no soul or no consideration for the free use of human knowledge which should be free for us all to use.
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.
But c'mon, tell us what you really think.
That's why we have the patent system. Duh.
in my opinion, this isn't at all an immoral thing to do. just rewrite the file interaction stuff. in my opinion, this would be more difficult than immoral, because the compiler takes away the comments.
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.