In the internet age, there are many reasons for reverse engineering in various fields, and the reverse engineering originates from the hardware analysis of commercial or military superiority. However, the reverse engineering process itself does not involve creating replicas or changing artifacts in some way, it is an analysis to infer design features from the product, and there is little or no additional knowledge about the programs involved in their original production. In some cases, the goal of the reverse engineering process can simply be a legacy system for document refactoring. Even if reverse engineering products are competitors ' products, the goal may not be to replicate them, but to conduct competitor analysis.
Reverse engineering can also be used to create interoperable products, although there are some narrow U.S. and EU legislation, but the legality of using specific reverse engineering technology for this purpose has been debated in courts around the world for more than 20 years. Software reverse engineering can help improve understanding of the underlying source code in order to maintain and improve the software, can extract relevant information to make software development decisions, graphical representation of the code can provide alternate view code about the source code, can help detect and repair software errors or vulnerabilities.
Often, as some software evolves, design information and improvements are often lost over time, but this lost information can often be recovered by reverse engineering. This process also helps reduce the overall cost of software development by reducing the time it takes to understand the source code.
Reverse engineering can also help detect and eliminate malicious code that uses better code detectors to write software. Reverse source code can be used to find alternative uses of source code, such as detecting unauthorized replication of source code that is not being used, or revealing how competitor products are built. This process is often used to "crack" software and media to remove its copy protection, or to create (possibly improved) replicas or even counterfeit products, which are usually the target of a competitor or a hacker. Malware developers often use reverse engineering to find vulnerabilities in the operating system (OS) in order to build computer viruses that exploit system vulnerabilities, and use reverse engineering in password analysis to uncover vulnerabilities in alternative passwords, symmetric key algorithms, or public-key cryptography. (Welcome reprint share)?
What is reverse engineering? How do hackers build vulnerabilities that can be exploited?