Reverse engineering is trying to understand a device or process by examining the original design. It’s usually done to understand the functionality of a system or software.

History

Reverse engineering is a process of analyzing the functions and structure of a physical object. The output from this analysis phase is used to create a 3D digital representation of the object. Reverse engineering is often used by manufacturers to modify existing products or to make new ones.

Reverse engineering has a long history, dating back to the days of the Roman army. The Romans reverse-engineered a Carthaginian quinquereme in 264 BC. The process also helps manufacturers to understand the design of a part.

Today, reverse engineering is used in many industries and fields. Companies use it to create new products, add functionality to existing products, and assess the design of competitors’ products.

A common motivation of reverse engineers is to see if a competitor’s product contains copyright infringement. Other purposes include security auditing, enabling additional features on low-cost hardware, and customizing embedded systems.

Reverse engineering is also an excellent way to find and correct errors in code. Researchers can find security flaws in a program and then fix them. It is usually done through black box testing.

Purposes

Using reverse engineering is an everyday activity for businesses looking to improve their products or gain a competitive advantage. The process involves identifying, analyzing, and modeling the structure of a product or system. The information gathered during the process is used to make a digital 3D record of the product.

Reverse engineering helps businesses regain lost designs and products that may no longer be manufactured. It can identify potential patent infringement, circumvent access restrictions, and customize embedded systems. The process also allows companies to detect errors, bugs, and other vulnerabilities that can harm the safety of users.

The reverse engineering process usually involves the use of metrology 3D scanners. The dimensions and component makeup of an object are measured with these scanners. Then, a conceptual model, data flow diagrams, or structural charts are created using these metrics. The original object is then recreated using the model that has been put into practice.

Legality

Despite a few high-profile cases, there has yet to be a consensus on the legality of reverse engineering. Reverse engineering may be legal in some countries, but it may also be illegal in others. Thankfully, rules are in place to shield software developers from unauthorized reverse engineering.

Federal and state laws determine the legality of reverse engineering. Section 103(f) of the federal Copyright Act provides a legal framework for reverse engineering. It allows users to decompile and deconstruct copyrighted works to obtain information about them. Section 52(ab) of the Copyright Act of 1957 states that extracting the information necessary to achieve interoperability of a computer program is fair use.

Similarly, Section 105 of the US Copyright Act allows overriding protection for boilerplate provisions. Section 105’s best-case scenario is that the reverse engineering statute will not be enforced. However, in practice, the legislature is pushing back against any restrictions on reverse engineering.

Ethical concerns

Among the most common ethical concerns with reverse engineering are copyright, intellectual property, and the misuse of a competitor’s product. These issues have prompted debates and will continue to do so. The discussion can help systems developers and developers understand the ethical limits of their practice.

For example, if you have learned a proprietary algorithm from a newspaper article, you are not ethically bound to protect it. However, if you confidently know this information, you have an ethical obligation to protect it.

If you learn this information, you may violate a trade secret by reverse engineering a competitor’s product. Misappropriation of a trade secret is a civil offense. However, if you know this information fairly and honestly, you can report it without breaking a trade secret law.

There are several ways to avoid violating trade secrets, including staying anonymous, using technical protection measures, and avoiding passwords. These measures may include encryption, code obfuscation, and authentication handshakes.