|
|
Finally, many companies attempt to protect ideas through licensing. For example, the license for Developer Release 1 of Natural Intelligences Roaster states that the licensee may not reverse-engineer, decompile, disassemble, modify, translate, make any attempt to discover the source code of the Software, or create derivative works from the Software. This is fairly standard boilerplate in software licensing agreements. Interestingly, a similar clause is not part of the license agreement from Sun for Java 1.0.2. To the best of my knowledge, no one has tested this sort of clause in court, and I cannot offer an educated opinion as to whether it is enforceable. Those aspects of shrink-wrap licenses that people have tested in court tend to relate to matters already covered under copyright law (such as the making of additional copies), so even the validity of shrink-wrap licenses in general is in doubt.
To make matters even more confusing, the laws in 49 of the 50 states are often slightly different from each other. (The laws in Louisiana are wildly different. I am not familiar with laws relating to this in Puerto Rico, Washington, D.C., or other non-state territories in the United States, but I doubt theyre as different as Louisianas.) There is something called the Uniform Commercial Code, UCC for short, which is an effort to get the laws of 49 states to conform to each other. (Louisiana law is really just too different to be included.) As of late 1996, the UCC is being revised. The commercial software industry is trying to have provisions written into the new UCC that would increase the validity and enforceability of shrink-wrap licenses. It remains to be seen what will happen.
One problem with laws like the UCC is that they have a very hard time keeping up with the fast-changing software industry and the Internet. Even if the new UCC does clarify the status of shrink-wrap licenses, it probably will not address the fact that most software downloaded from the Internet does not have shrink-wrap! Some packages like Suns JDK display a splash screen with the license agreement the first time that a user launches the software with buttons for the user to accept or reject the agreement. To my knowledge, no one has tested such splash screen licenses in court. Even if they are held to be valid, what about splash screens that provide only an Agree button and no Disagree button? What if programmer A agrees to the license, but later programmer B starts using that computer and never sees the license? (For that matter, this applies to shrink-wrapped software, too.)
Furthermore, http servers allow .class files to be downloaded from many sites with no license of any sort. My suspicion is that no more than copyright law protects these .class files, but I would not be surprised to see a software company dispute this in court.
As you can see, these issues are quite complex. There are few easy answers. However, on a practical note, nobody is going to know or care if you disassemble a file to satisfy your personal curiosity or expand your knowledge. On rare occasions, companies have gotten perturbed and called out their lawyers when a competitor released a product that could read their file formats. They also tend to be annoyed when a writer publicly reveals information that theyd rather keep private. However, even in these cases theres relatively little they can do besides write threatening letters.
This discussion has been necessarily brief. Table 4-5 lists some more resources on the Internet for investigating these intellectual property matters.
Table 4-5 Some intellectual property resources on the Internet
Resource
| Location
| Comments
|
The Oppedahl & Larson Patent Law Web Server
| http://www.patents.com/
| This law firm has many useful FAQ lists and other information about intellectual property written from a carefully legal perspective.
|
The Union for the Public Domain
| http://www.public-domain.org/
| The Union for the Public Domain is fighting the efforts of the copyright industry and the Clinton-Gore administration to allow the copyrighting of facts.
|
The Yahoo Intellectual Property Page
| http://www.yahoo.com/Government/ Law/Intellectual_Property/
| As usual, Yahoo has a good collection of links to all sorts of resources.
|
The Electronic Frontier Foundations Intellectual Property Online: Patent, Trademark, Copyright Archive
| http://www.eff.org/pub/ Intellectual_property/
| The Electronic Frontier Organization is primarily concerned with ensuring that freedoms taken for granted in the print world arent trampled on the Internet.
|
The League for Programming Freedom
| http://www.lpf.org/
| The League for Programming Freedom endeavors to make sure programmers arent unduly burdened by software patents and bad laws.
|
The International Federation of Library Associations and Institutions Copyright and Intellectual Property Resources page
| http://www.nlc-bnc.ca/ifla/II/ cpyright.htm
| This page has links to many excellent articles about intellectual property on- and off-line.
|
Accessing Class Files
So far in this chapter Ive assumed that youre working with a single .class file. In practice, thats not always true. Sometimes it takes a little work to get a .class file to disassemble. First, you may have to do a little work to retrieve the .class file from a remote Web server. Second, .class files are often distributed as parts of larger zip or jar archives. However, its not hard to extract the necessary .class file from an archive.
|