Ethics of Reverse Engineering
The most traditional method of the development of
a technology is referred to as "forward engineering." In the
construction of a technology, manufacturers develop a product by implementing
engineering concepts and abstractions. By contrast, reverse engineering begins
with final product, and works backward to recreate the engineering concepts by
analyzing the design of the system and the interrelationships of its
components.
Reverse engineering process is recreating a
design by analyzing a final product. Reverse engineering is common in both
hardware and software to disassemble and examine or analyze in detail (as a
product or device) to discover the concepts involved in manufacture usually in
order to produce something similar.
Reverse engineering as a method is not confined
to any particular purpose, but is often an important part of the scientific
method and technological development. The process of taking something apart and
revealing the way in which it works is often an effective way to learn how to
build a technology or make improvements to it.
When reverse engineering software, researchers are able to examine the strength of systems and identify their weaknesses in terms of performance, security, and interoperability (ability of programs and systems running on various kinds of software and hardware to communicate with each other). The reverse engineering process allows researchers to understand both how a program works and also what aspects of the program contribute to its not working. Independent manufacturers can participate in a competitive market that rewards the improvements made on dominant products. For example, security audits, which allow users of software to better protect their systems and networks by revealing security flaws, require reverse engineering. The creation of better designs and the interoperability of existing products often begin with reverse engineering.