DSCS150 57520001-FY maintains and improves understanding of the underlying source code
There are many reasons to perform reverse engineering in various fields. Reverse engineering originates from hardware analysis for commercial or military advantage. [5]: 13 However, the reverse engineering process may not always focus on creating a copy or changing the artifact in some way. It can be used as part of an analysis to infer the design characteristics of a product with little or no knowledge of the procedures involved in its original production process. [5]: 15
In some cases, the goal of the reverse engineering process can simply be to re-document about the legacy system. [5]: 15[6] Even if the reverse-engineered product is a competitor’s, the goal may not be to replicate but to perform adversary analysis. [7] The legality of using specific reverse engineering techniques has been hotly debated in courts around the world for more than two decades, despite changes in legislation in the United States and the European Union. [8]
Software reverse engineering helps improve understanding of the underlying source code for software maintenance and improvement, relevant information can be extracted to make software development decisions, and graphical representations of code can provide an alternative view of the source code, which helps detect and fix software defects or vulnerabilities. Often, as some software is developed, design information and improvements are often lost over time, but the lost information can often be recovered by reverse engineering. This process can also help reduce the time required to understand the source code, thus reducing the overall cost of software development. [9] Reverse engineering can also help detect and eliminate malicious code by writing better code detection software. Inverting source code can be used to find alternative uses for source code, such as detecting unauthorized copying of source code where it is not intended to be used, or revealing how a competitor’s product is built. [10] The process is often used to “hack” software and media to remove their copy protection,[10]: 7 or to create a possibly improved copy or even a fake costume, which is often the target of competitors or hackers.
Malware developers often use reverse engineering techniques to find operating systems and build a computer virus that can exploit system vulnerabilities. [10]: 5 Reverse engineering has also been used in cryptanalysis to find… Weaknesses of alternative ciphers, symmetric key algorithms or public key ciphers.