hes@ccvr1.ncsu.edu (Henry E. Schaffer) (04/08/90)
In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes: >dennis@goofy.UUCP (Dennis Godfrey) writes: > >[saying this is a Bad Thing] > >|2. Any type of reverse engineering of someone else's object code >| will only be permitted if you get a specific written license >| from the someone else. Reverse engineering in this context >| means such things as using a disassembler to try and figure out >| what their object code does, taking memory dumps, single >| stepping through code, monitoring comms. lines and so on. > >Why is this a Bad Thing? Wouldn't this be the same thing as publishing ^^^^^^^^^^^^^^^^^^^^^^^^ It seems to be prohibiting reverse engineering per se (e.g., even without publishing.) >derivative works, which is already a no-no? Or does this imply that one >can't even disassemble for personal use? A simple reading of "Any type of reverse engineering ..." would indicate that intent, such as personal use, is irrelevant. This whole thing bothers me very much. It is giving software ownership priveleges which other owners of intellectual property do not have. If I buy a patented machine, I am certainly allowed to take it apart, to observe how it works, and to learn from it. If I buy a copyrighted book, or map, or design, I am certainly allowed to look at it, to study it and observe how it "works", and to learn from it. In these cases I am allowed to alter the item I bought to make it more suitable for my own use. However, what if I buy some copyrighted software? Am I allowed to study its innards and learn from it? Well, doing this would be called "reverse engineering", and all of a sudden this has become a pejorative term. Copyright does *not* make it illegal to learn an idea from the copyrighted item and then to reuse the idea - it is the expression of the idea which is protected. So it seems to me that some software owners want legal protection far beyond what the copyright provides and are entering into the political arena to get legal protection against even looking at the innards - and calling it "reverse engineering" because that sounds ominous. (Next thing, you'll hear of bans of ownership of semi-automatic disassemblers! :-) --henry schaffer >-- >*** Sean Casey sean@ms.uky.edu, sean@ukma.bitnet, ukma!sean
warren@eecs.cs.pdx.edu (Warren Harrison) (04/08/90)
In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes: >In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes: > > This whole thing bothers me very much. It is giving software ownership >priveleges which other owners of intellectual property do not have. >If I buy a patented machine, I am certainly allowed to take it apart, >to observe how it works, and to learn from it. But you can't go any further than that, ie, make your own version of the item, that's what patents are all about. I imagine this is the protection the software companies desire - being able to keep a user from copying the algorithm and using it in their own product. Except for uses that clearly violate the spirit of the transaction (eg, changing a size limit to a demo version of the software), I imagine most companies could care less about a customer using one of their algorithms for purely personal use. However, say the customer does use the algorithm (for purely personal use) but that they give the resulting program source to a friend who sees the algorithm and (without knowing the source of the algorithm) distributes it to others. Now the company has problems. It is this chink in the current copyright laws that are forcing companies to go the patent route. With a patent, it is more than simply the expression that is protected, but the actual algorithm itself (consider Quarterdeck's patent on running text applications in windows). The advantage of the copyright expansion is that now small developers can afford the protection the big guys are getting anyway through patents. This means that if *you* come up with a novel way to do something (let's say predict exactly how long it will take to write a system given the average weight of the programmers who will be working on it:-), you just have to paste a copyright joe blow, 1990 on it and your formula/algorithm is protected. The way the situation is now, it would be (at least given the opinions expressed on the net) quite easy to reverse engineer the code, find out the algorithm (which probably took you years of experimentation to develop) and have a competing product out in 6 months that sells for half what your product sells for. A large company would file for a patent right away, and financially break the fingers of anyone who tried to copy the formula. You'd be reluctant to part with the $5-10K needed to do a patent search, file for a patent (properly), etc. since you're not in the business to start with and aren't sure how the program will sell, so you'd probably settle for free copyright protection and hope no one steals your idea until you can get the capital together to protect it better. Another problem with patents is that even if you came up with the formula independently, the big company could "break your fingers", with a copyright they'd have to prove you got it from reverse engineering the code. Me, I'm for anything that A) makes small guys competitive with the big companies and B) reduces the incentive for companies to patent things since then it nails you if you come up with the algorithms, etc, independently. > >--henry schaffer ========================================================================== Warren Harrison warren@cs.pdx.edu Department of Computer Science 503/725-3108 Portland State University
jbeard@quintus.UUCP (Jeff Beard) (04/09/90)
> However, what if I buy some copyrighted software? Am I allowed > to study its innards and learn from it? Well, doing this would be > called "reverse engineering", engineering typically takes parts,components and creates product(s). a literal reading of "reverse engineering" then would be to disassemble product(s) into the constituent parts,components. As most parts and components are 'off-the-shelf', this is almost valueless in and of it self. We should be aware that IDEAS per se can not be trademarked nor copyrighted. These protections are placed upon the product, and/or the means to produce products. Thus software "reverse engineering" that IS being restricted is the repackaging of parts and components obtained from disassembling someone elses product and not only presenting it as your own (ie: plagiarism ), but also profiting from their original work. A copyrighted publication may be copied, say at your local library, FOR YOUR PERSONAL USE, but not for redistribution. An expensive automobile may be stripped to its base parts and components, but not remanufactured AND distributed. A software product, assuming valid access such as purchasing the first copy, may be ""reverse engineered" for YOUR OWN enjoyment BUT NOT redistributed. -- ====== Opinions are the possession of the speaker and to assert otherwise is plagiarism. Jeff Beard, Quintus Computer Systems, Inc. e-mail ...!amdahl!sun!quintus!jbeard phone (415) 965-7700
cox@stpstn.UUCP (Brad Cox) (04/09/90)
In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes: > This whole thing bothers me very much. It is giving software ownership >priveleges which other owners of intellectual property do not have. >If I buy a patented machine, I am certainly allowed to take it apart, >to observe how it works, and to learn from it. If I buy a copyrighted >book, or map, or design, I am certainly allowed to look at it, to >study it and observe how it "works", and to learn from it. In these >cases I am allowed to alter the item I bought to make it more suitable >for my own use. Software Engineers says software is a thing, like other entities of the external domain of tangible experience (bridges, plumbing systems, space shuttles, etc). Computer Scientists say software is information, like other entities of the internal domain of intangible thought (mathematics, logic, etc). But software is neither land nor sea, but *swamp*, a hybrid of land and sea that is simultaneously too thick to drink and too thin to plow. To me, what is behind the rush to object-oriented programming languages, direct manipulation user interfaces, etc, is a wide-based awareness that programming (in the large) is an organizational phenomenon more than an individual phenomenon. It is a 'drain the swamp' movement; do whatever we can to make software more tangible and more concrete, rather than more intangible and abstract. Competing 'flood the swamp' movements are also prominent in computer science circles, notably in the rash of ACM articles and rebuttals this fall. Although I am generally associated with the drain the swamp movement, what I really believe is that we need to get army (software engineering) and navy (computer science) together and weld the best that the two sides have to offer into a hybrid solution to a hybrid problem; something like the marines.
ned@pebbles.cad.mcc.com (Ned Nowotny) (04/10/90)
In article <2634@psueea.UUCP> warren@eecs.UUCP (Warren Harrison) writes: =>In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes: =>>In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes: =>> =>> This whole thing bothers me very much. It is giving software ownership =>>priveleges which other owners of intellectual property do not have. =>>If I buy a patented machine, I am certainly allowed to take it apart, =>>to observe how it works, and to learn from it. =>But you can't go any further than that, ie, make your own version =>of the item, that's what patents are all about. I imagine this is =>the protection the software companies desire - being able to keep =>a user from copying the algorithm and using it in their own product. => Copyright no more covers algorithms in software publishing than it does plots in book publishing. Copyright only pertains to the expression of an idea, not the idea itself. =>Me, I'm for anything that A) makes small guys competitive with the =>big companies and B) reduces the incentive for companies to patent =>things since then it nails you if you come up with the algorithms, =>etc, independently. Despite the common perception, copyright and patent law generally benefits most the person or organization with the best lawyers and the deepest pockets for litigation. Big corporations are not lobbying Congress for expanded copyright and patent protection because of an altruistic desire to help the "little guy." Instead, they see it as an effective weapon for stifling competition with the full blessing of the government. Ned Nowotny, MCC CAD Program, Box 200195, Austin, TX 78720 Ph: (512) 338-3715 ARPA: ned@mcc.com UUCP: ...!cs.utexas.edu!milano!cadillac!ned ------------------------------------------------------------------------------- "We have ways to make you scream." - Intel advertisement in the June 1989 DDJ.
bruce_weide@elephant.cis.ohio-state.edu (04/10/90)
A couple quick thoughts on legal protection for software... It seems it would be helpful if we could talk about the legal or ethical question of whether reverse engineering (or whatever you want to call it) is PERMISSIBLE, separately from the technical question of whether it is POSSIBLE. I have missed some of this discussion, so if this is a repeat of someone else's comments I apologize. There is such a thing as a trade secret, which I gather is weaker than a patent but still legal protection. (I'm not a lawyer so I don't really know much about this.) Anyway, I would hope that--for reasons made clear by Warren Harrison in a recent article to this comp.software-eng--software developers/publishers would have SOME legal protection against people dismantling their object code in order in order to ascertain trade secrets. Of course one can at present (I didn't say "may" because that's a different issue, one that seems to be in question) disassemble object code and determine its constituent parts. But one can also determine how those parts are put together, which is often a trade secret, and therein lies the problem. IMHO, if one is reverse engineeering object code for the purpose of exposing a trade secret in this way one should, at the very least, be prohibited from profiting from it or disclosing it to others. Would it help to think that object code might be more like a chemical compound than a bridge or a car engine? What I mean is that it might be interesting if object code could NOT be disassembled so easily; if one really had to WORK at it to steal someone else's trade secrets... Sort of like figuring out how to make a chemical compound with given properties: you don't just throw together the elements in the proper proportions, even if the chemical formula of the desired compound is known. How could we get to this state? Well, if some hardware manufacturer put some sort of encryption mechanism on-board the processor chip and object code for that machine were always kept in encrypted form when externally stored and visible to a human, the question of whether reverse engineering is POSSIBLE (or at least economical) might have a different answer. I don't know, maybe someone has already done this... How would this affect people's views of the legal or ethical question of whether it ought to be PERMISSIBLE? Especially if it were provably uneconomical to try to "break into" the trade secret vault, I'd be inclined to think of those who did it as (perjorative term here) hackers who are not much better than people who create virus programs. I would conclude, therefore, that even though it is presently FEASIBLE to reverse engineer someone else's software for purposes of stealing their trade secrets, it is not ETHICAL. Part of the reason is that the feasibility is not something inherent in nature of object code; it is merely a characteristic of our current way of executing programs, and likely to be a transient one at that if people continue to use reverse engineering for this purpose. (And what other purpose is there?) Expecting some flames, -Bruce ------ Prof. Bruce W. Weide Dept. of Computer and Information Science The Ohio State University 2036 Neil Ave. Mall Columbus, Ohio 43210-1277 USA Phone: 614-292-1517 E-mail: weide@cis.ohio-state.edu
gbeary@uswat.uswest.com ( Greg Beary ) (04/11/90)
There was a good article on the legality of reverse engineering software in the December (I think) issue of IEEE Software. I may be foggy in my recollections, but here goes. The author was a professor at CMU and specialized in the area of Intellectual Property Rights. She seemed to indicate that reverse engineering by dis-assembly etc, is perfectly legal. You are attempting to gather the specifications for a product by inspecting it. She also (I beleive it was a she) mentioned that if software was delivered in source form, the way a book is, the issues may be different. I came away with the impression that as long as you did not plagerize, ie. copy the executable exactly, anything that you were doing was legal. It's been a while since I read the article, and I couldn't find it to quote it exactly. It made for very interesting reading and really clarified what the issues were. By the way, this pertained to software practices IN AMERICA. I beleive the original poster mentioned the EEC. There I'm sure you'll find very different rules, issues, and practices based upon local established customs and tradition. -- Greg Beary
sampson@cod.NOSC.MIL (Charles H. Sampson) (04/13/90)
In article <7510@cadillac.CAD.MCC.COM> ned%cad@MCC.COM (Ned Nowotny) writes: >Copyright no more covers algorithms in software publishing than it does >plots in book publishing. Copyright only pertains to the expression of >an idea, not the idea itself. True, but many (most?) algorithms are expressions, not ideas, or at least could be looked at that way. For example, sorting is an idea, while quicksort and heapsort are two ways of expressing that idea in a computer program. Charlie
brnstnd@stealth.acf.nyu.edu (04/15/90)
In article <1870@cod.NOSC.MIL> sampson@cod.nosc.mil.UUCP (Charles H. Sampson) writes: > For example, sorting is an idea, while quicksort and > heapsort are two ways of expressing that idea in a computer program. Ummm, no. Quicksort is a method of sorting; but it's neither tangible, nor an expression of the idea of sorting, nor of a particular fixed form, nor patentable, nor copyrightable. Thank God. ---Dan