07 reverse engineering
Post on 04-Nov-2015
Embed Size (px)
Reverse EngineeringEdited by Dr. Prabir SarkarReverse engineering is the process of extracting knowledge or design information from anything man-made. The ultimate goals for obtaining such information are varied. A typical goal for reverse engineering a product is to create a (possibly improved) copy or even a knockoff; this is usually the goal of a competitor.
Reverse engineering has its origins in the analysis of hardware for commercial or military advantage.
However, the reverse engineering process in itself is not concerned with creating a copy or changing the artifact in some way; it is only an analysis in order to deduce design features from products with little or no additional knowledge about the procedures involved in their original production.
Reasons for reverse engineering
Interfacing. Reverse Engineering can be used when a system is required to interface to another system. Such requirements typically exist for interoperability.
Military or commercial espionage. Learning about an enemy's or competitor's latest research by stealing or capturing a prototype and dismantling it. It may result in development of similar product, or better countermeasures for it.
Improve documentation shortcomings. Reverse engineering can be done when documentation of a system for its design, production, operation or maintenance have shortcomings and original designers are not available to improve it. RE of software can provide the most current documentation necessary for understanding the most current state of a software system
Obsolescence. Integrated circuits often seem to have been designed on obsolete, proprietary systems, which means that the only way to incorporate the functionality into new technology is to reverse-engineer the existing chip and then re-design it.
Software Modernization. RE is generally needed in order to understand the 'as is' state of existing or legacy software in order to properly estimate the effort required to migrate system knowledge into a 'to be' state. Much of this may be driven by changing functional, compliance or security requirements. Product Security Analysis. To examine how a product works, what are specifications of its components, estimate costs and identify potential patent infringement. Acquiring sensitive data by disassembling and analysing the design of a system component. Another intent may be to remove copy protection, circumvention of access restrictions.
Bug fixing. To fix (or sometimes to enhance) legacy software which is no longer supported by its creators (e.g. Abandonware).
Creation of unlicensed/unapproved duplicates, such duplicates are called sometimes clones in the computing domain.
Academic/learning purposes. RE for learning purposes may be understand the key issues of an unsuccessful design and subsequently improve the design.
Competitive technical intelligence. Understand what one's competitor is actually doing, versus what they say they are doing. Saving money, when one finds out what a piece of electronics is capable of, it can spare a user from purchase of a separate product.
Repurposing, in which opportunities to repurpose stuff that is otherwise obsolete can be incorporated into a bigger body of utility.
Source: WikiReverse engineering of machines
As computer-aided design (CAD) has become more popular, reverse engineering has become a viable method to create a 3D virtual model of an existing physical part for use in 3D CAD, CAM, CAE or other software.
The reverse-engineering process involves measuring an object and then reconstructing it as a 3D model.
The physical object can be measured using 3D scanning technologies like CMMs, laser scanners, structured light digitizers, or Industrial CT Scanning (computed tomography). The measured data alone, usually represented as a point cloud, lacks topological information and is therefore often processed and modeled into a more usable format such as a triangular-faced mesh, a set of NURBS surfaces, or a CAD model.
Reverse engineering is also used by businesses to bring existing physical geometry into digital product development environments, to make a digital 3D record of their own products, or to assess competitors' products.
It is used to analyse, for instance, how a product works, what it does, and what components it consists of, estimate costs, and identify potential patent infringement, etc.Reverse engineering examples
Panzerschreck: The Germans captured an American Bazooka during World War II, and reverse engineered it to create the larger Panzerschreck.
The Panzerschreck was developed as a copy from captured bazookas of American origin.
he Panzerschreck was larger and heavier than its American counterpart (the Panzerschreck had an 88 mm calibre compared to the 60 mm calibre of the bazooka).
Tupolev Tu-4: Three American B-29 bombers on missions over Japan were forced to land in the USSR. The Soviets, who did not have a similar strategic bomber, decided to copy the B-29. Within a few years, they had developed the Tu-4, a near-perfect copy.
Purpose of Reverse Engineering
The purpose of Reverse Engineering is to understand how and why a current design has come to be. Most often this task is completed on physical products that can be taken apart, examined and put back together for continued testing. These same Reverse Engineering procedures are also useful in deciphering chemical compounds, industrial procedures, manufacturing processes and computer programs. Reverse Engineering is often chosen by engineers or design teams who aim to build a competitive or superior product to one that is currently on the market. In the end, the goal is to save time and gain insight into how others have approached similar design challenges. There is no need to reinvent the wheel if a successful design already exists and can simply be improved upon. Dym and Little explain reverse engineering as, examining competitive or similar or prior products in great detail by dissecting them or literally taking them apart. Questions to be asked would include, what does this do? How does it work? And Why would you want to do that?
How to reverse engineer?
Reverse Engineering is primarily used as a tool during the first stages of a complete design process. An engineer will often times investigate the marketplace for products similar to his/her new design that can be taken apart and examined inside and out for insight and time savings. This investigation may begin with general searches on the internet or in the Thomas Register for products with certain similarities to the new product. This first step begins the methodology behind Reverse Engineering. Once a product has been located, the product will be tested and attempts will be made to determine how exactly it functions. This will lead into disassembly and a concrete understanding of how and why a design works. These Reverse Engineering steps then lead the way to new designs, redesigns and hopefully successful solutions.
Investigation, Prediction and HypothesisConcrete Experience: Function & FormDesign ModelsDesign AnalysisParametric RedesignAdaptive RedesignOriginal RedesignAdapted from Otto and Woods Reverse Engineering and Redesign Methodology UT Austin. Department of Mechanical. Ohio State UniversityReverse EngineeringModeling & AnalysisRedesignReverse Engineering Methodology10Reverse Engineering is primarily used as a tool during the first stages of a complete design process. An engineer will often times investigate the marketplace for products similar to his/her new design that can be taken apart and examined inside and out for insight and time savings. This investigation may begin with general searches on the internet or in the Thomas Register for products with certain similarities to the new product. This first step begins the methodology behind Reverse Engineering. Once a product has been located, the product will be tested and attempts will be made to determine how exactly it functions. This will lead into disassembly and a concrete understanding of how and why a design works. These Reverse Engineering steps then lead the way to new designs, redesigns and hopefully successful solutions.
The first step of Reverse Engineering is Investigation, Prediction and Hypothesis. The engineer is taking a step back and looking at the product or process from a simple, consumer-oriented perspective. At this stage we want to understand the basics of how and why it works. Before cracking open the case, we want to begin predicting how the product is put together. This serves as a brainstorming process for the redesign and allows us to begin connecting engineering fundamentals with the consumer oriented view of the product. 1. Investigation, Prediction and HypothesisDevelop black box modelUse / Experience productList assumed working principlesPerform economic feasibility of redesignState process description or activity diagramReverse Engineering MethodologyThe second step of Reverse Engineering is gaining Concrete Experience with the product. The engineer will first use the product, as recommended by the manufacturer, to gain insight into the products ability to handle the advertised performance criteria.
Then, the engineer will begin to plan the products disassembly in such a way that it becomes clear how the products components interact with one another.
This process is known as System Level Design and will be discussed in greater detail later in the module. It is important to carefully illustrate the disassembly of any product or component with photographs or sketches in order to be able to reassemble the product at the end if further testing is required. 2. Concrete Experience: Function and FormPla