When is it Legal to Reverse Engineer Software? 40
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?"
Re:Whenever . . . CmdrVile need to DIE. (Score:1)
You're Kidding, Right? (Score:1)
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
Not really (Score:1)
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?
Re:The Legal Issue Isn't The Patent... (Score:1)
But that doesn't change the fact that they are allowed to do so. Heinz cannot be forced to sell their ketchup to Hamburger Fred if they decide they don't want to. They don't need any reason other than not wanting to. Why do you think you see computer stores that advertise "Sony/Apple/etc. Authorized Dealer"? It's because those are the stores that the respective company chose they wanted to sell to. Conversely, I cannot just open up a little hole in the wall computer store and force Sony to sell to me.
The only analogy that could make sense for the purpose of your argument would be comparing software distribution to the utility monopolies. Dominion Virginia Power can, unlike Heinz, be forced to sell their electricity to Hamburger Fred's corporate office, presuming he lives in their service area, signs up for an account, has a credit history that passes the minimum requirements and adheres to all the rules of paying on time, not reselling the power without prior license/consent/approval/whatever. But, the difference here is that DVP can only be told to do so because they are Hamburger Fred's one and only option for connecting to the public power grid.
Ketchup, and software, are nothing like that. There is no "natural monopoly" on software. There may be some unnatural obstacles such as patents and illegally aggressive business practices by other companies, but just because ACME Corp. sells a word processor does not prevent JimBob Inc. from selling theirs as well.
Consider the following situation. XYZ Inc. sells graphics software for the Mac OS platform. They're a small company but make a great product that graphic designers and artists on Macs dig. But, they don't have the resources to target multiple platforms right now.
Well, sucks for people not using Macs that may want to use that program. Oh well, there's nothing stopping another company, or even an open source project, from making a similar product for other platforms, except time and money.
So, you say, "Well, I don't have the time or the money, but I really want that software." Well, XYZ Inc. may want you to have the software, too, but they don't have the time or money to do so.
Basically, your position boils down to that you aren't really interested enough in that software to either do it yourself, buy in to the necessary platform or make it financially viable for the company to add the resources to get it to you. You would rather legislate to them that they must cater to your whims of platform, regardless of how thin it will spread their resources.
In fact, in your second paragraph you even go so far as to state that XYZ Inc., if they don't have the resources to provide a Windows version of their software, should "[give] their code to other operating-systems so that they can produce a workable solution." Does that mean that if XYZ Inc. can't afford anything but a Mac version they should just hand over their code to Microsoft (for a Windows port), Palm (a Palm and Be port), IBM (AIX, z/OS, etc.), Sun, HP, SGI, RedHat (or any other Linux distributor -- or should it be Linus, the copyright holder, or FSF the license's creator) and the other dozens of companies and individuals that create or maintain operating systems?
Where do you draw the line with operating systems? What if the current owner of a PDP-11 says they want a port of the software, however infeasible? Is XYZ Inc. forced to either devote their own resources to it or hand the code over to AT&T? What about Mac OS 5? It's a deprecated operating system, but there may be someone out there that still uses it. XYZ Inc. makes a Mac version, but it will almost certainly not work on such an old version. Who are they then forced to hand the code to for the Mac OS 5 port? I'd be willing to bet my next several paychecks that Apple would laugh at the idea.
What about software that doesn't, and simply never will, run on other platforms? I may really want 12" tape reader control software for the embedded operating system in my cell phone, but it's not going to happen. No matter how much I really want to use my old tapes to backup the phone numbers, it is ridiculous to assert that ABC Inc. (fictional company; I don't actually own a 12" tape reader or control software for one) that made the software for the tape reader should be forced to port their software to my cell phone or hand over all their code so that someone else can do it. If they don't want to do so, then it should be their decision.
The real world doesn't work that way. And in a free market society, it should never have to, because we have the choice to either make it financially worth the company's while, find another company with a similar product who does cater to our needs or to try and do it ourselves. But we should not be able to dictate their platform to them through any means other than as consumers who may or may not purchase/use the software. It's a different matter when the platform choice is part of contract development between businesses, but then just about all the rules are different.
Practically no software company could survive if things worked the way you suggested, and we would all be the worse for it.
Search? (Score:1)
Have you searched? [uspto.gov]
many already doing this (Score:1)
Here's your answer (Score:1, Troll)
**Insert open source statement, explaining everything should be free as in beer**
**Insert obligatory anti-Microsoft statement**
**Insert funny sig**
Re:Here's your answer (Score:2)
Nice try. Next time use your Slashdot login and you will get an "interesting" or "insightful" instead of "troll"...
Reverse engineering (Score:5, Informative)
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
Microsoft patents ASF... stops reverse engineering (Score:3, Informative)
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 [advogato.org].
A quote:
Re:Reverse engineering (Score:2)
Re:Reverse engineering (Score:1)
Re:Reverse engineering (Score:2)
Actually, the Unisys patent was on the LZW compression algorithm that produced the data stored in the file. The GIF file format itself was developed and owned by CompuServe, and it was NOT patented.
I would submit that if one developed a different algorithm (NOT a reverse-engineered implementation of LZW) that produced the same output data stream LZW compression does and wrote the data out to a GIF formatted file, you would have nothing to fear from Unisys because all their patent covers is the LZW algorithm.
Re:Reverse engineering (Score:3, Informative)
File formats are not patentable nor are they copyrightable.
Whoa, there. Where did you get that from? File formats certainly are patentable -- the fact that particular companies have not patented particular file formats says nothing about the patentability of file formats in general.
The Supreme Court has ruled that anything made by man is patentable subject matter. As long as the file format is a new one, and not a completely trivial change to an existing file format, then it should be patentable.
And yes, I am an attorney (a recovering patent attorney).
-Steve
Re:Reverse engineering (Score:2)
I have to admire you. You haven't given up on slashdot like I have. Either that, or your FUD filter is broken.
Only reason I mention this is i love it when a statement is made by someone completely in the know, and then is more or less ignored.. Kind of like "NO! NO! It makes sense, but it's not what I want to hear! NO!" response.
Re:Reverse engineering (Score:2)
Either get explicit permission... (Score:3, Insightful)
or call a lawyer well versed in technology and patent law.
Consult your lawyer, of course! (Score:3, Interesting)
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.
Re:Consult your lawyer, of course! (Score:1)
I have the 100+ years of National Geographic on DVD-ROM, and all the pages are just
Re:Consult your lawyer, of course! (Score:2)
Hmmm. [punches in 'geographic' on freshmeat.net. Clicks on first link.] Do you mean something like this?
Re:Consult your lawyer, of course! (Score:1)
Thanks for the link. I've never seen the NG CD series in person, just pondered whether to invest in them. Good to see something like this available.
Re:Consult your lawyer, of course! (Score:1)
A few years ago, a friend of mine wrote a Linux/Unix app to access a CD-ROM encyclopedia. He had bought a copy of the CD, but it only came with DOS software. Then he released the app as open source, figuring the dictionary folks would be thrilled that he was opening up an entirely new market for their software -- this was in the days before CD-R's, and you would have had to buy the package to use the disc.
A few months later, he got a cease-and-desist letter in the mail from the dictionary company's lawyer. Seems they viewed this software as a violation of their license agreement. Whether it was or not is anyone's guess. Not having the money for a legal fight, he withdrew the software.
The moral of this story: Be prepared to pay through the nose for the privilege of being right.
Black box (Score:2, Insightful)
Check out this Cringely piece [pbs.org] on reverse engineering.
nz
License problems (Score:1)
DMCA (Score:1)
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.
Re:DMCA (Score:2)
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"?
Re:DMCA (Score:2, Informative)
*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.
MacLink made a career out of it! (Score:1)
How you should proceed (Score:3, Informative)
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 (Score:1)
In Europe, if it is for interoperability (Score:2, Informative)
Reverse engineering is legal in the US (Score:1)
my 2 cents (Score:1)
Engineering Firms Do it all the time (Score:2)