1. What is reverse engineering (RE)?
- Reverse Engineering (RE): "disassemble or analyze in detail in order to discoverconcepts involved in manufacture." - "reverse engineer." The Merriam-Webster Dictionary, New ed. 2004.
- Reverse engineering is "the process of discovering the technological principles of a mechanical application through analysis of its structure, function and operation. That involves sometimes taking something apart and analyzing its workings in detail, usually with the intention to construct a new device or program that does the same thing without actually copying anything from the original." - Wikipedia
2. What are some common uses for reverse engineering?
According to the Computer World, reverse engineering is commonly used:- As a learning tool
- as a way to make new compatable products that are cheaper than what's currently on the market.
- for making software interoperate more effectively or to bridge different operating systems or databases.
- to uncover the uncoordinated features of commercial products.
According to A Methodology for Reverse Engineering, reverse engineering consists of the following steps:
- Observe and assess the mechanisms that make the device work.
- Dissect and study the inner workings of a mechanical device.
- Compare the actual device to your observations and suggest improvement.
3. How is reverse engineering implemented legally?
There are two basic legalities associated with reverse engineering:- a. Copyright Protection - protects only the look and shape of a product.
- b. Patent Protection - protects the the idea behind the functioning of a new product.
- Negotiate a license to use the idea.
- Claim that the idea is not novel and is an obvious step for anyone experienced in the particular field.
- Make a subtle change and claim that the changed product is not protected by patent.
- a team of engineers are sent to disassmble the product to investigate and describe what it does in as much detail as possible at a somewhat high level of abstraction.
- description is given to another group who has no previous or current knowledge of the product.
- second party then builds product from the given description. This product might achieve the same end effect but will probaby have a different solution approach.
4. What are some legal cases and ethical issues involving reverse engineering?
New court cases reveal that reverse engineering practices which are used to achieve interoperability with an independantly created computer program, are legal and ethical. In December, 2002, Lexmark filed suit against SCC, accusing it of violating copyright law as well as the DMCA. SCC reverse engineered the code contained in Lexmark printer cartidge so that it could manufacture compatible cartiges. According to Computerworld, Lexmark "alleged that SCC's Smartek chips include Lexmark software that is protected by copyright. The software handles communication between Lexmark printers and toner cartidges; without it, refurbished toner cartidges won't work with Lexmark's printers." The court ruled that "copyright law shouldn't be used to inhibit interoperability between one vendor's products and those of its rivals. In a ruling from the U.S. Copyright Office in October 2003, the Copyright Office said "the DMCA doesn't block software develpers from using reverse engineering to access digitally protected copyright material if they do so to achieve interoperability with an independently created computer program."5. Is reverse engineering unethical?
This issue is largely debated and does not seem to have a clear cut answer. The number one argument against reverse engineering is that of intellectual property. If an individual or an organization produces a product or idea, is it ok for others to "disassemble" the product in order to discover the inner workings? Lexmark does not think so. Since Lexmark and companies like them spend time and money to develop products, they find it unethical that others can reverse engineer their products. There are also products like Bit Keeper that have been hurt by reverse engineering practices. Why should companies and individuals spend major resources to gather intellectual property that may be reversed engineered by competitors at a fraction of the cost?There are also benefits to reverse engineering. Reverse engineering might be used as a way to allow products to interoperate. Also reverse engineering can be used as a check so that computer software isn't performing harmful, unethical, or illegal activities.