This practice is coming from older industries and is currently used for both hardware and software fields. One can reverse engineer a model to deconstruct them to look at the existing software known as reverse engineering.
It is also called back engineering.
It is so called because it involves working backward through the final product design. However, one can often have a very limited amount of knowledge about the engineering steps that went in making that product. Now, that is the tricky part. The challenge here is to gain knowledge about those engineering methods and then deconstruct it.
In some cases, the only way to obtain the original designs of a product is only through reverse engineering. Products which have been made 20 years ago have their original footprints lost. Also contacting the manufacturer cannot be possible as the company might have stopped functioning.
Among auto-restoration specialists, reverse engineering is also used to recreate the designs of an older vehicle. Thus reverse engineering can bring an old vehicle into life without changing its original design.
Read our blog: Augmented Reality and Virtual Reality
Reverse Engineering Process
To reverse engineer a physical product, the analyst needs the example of the original product and literally breaks it down to obtain the original designs and its construction. This is done during the reverse engineering of a mechanical product.
Same thing is done for reverse engineering software. To decode its coding.
Read about Mechanical Engineering: What is mechanical engineering – A complete guide (4 min)
The 3 stages of Reverse Engineering
One forms the initial basis for the reverse engineering to be done on the product. Since the original product will serve as a reference there shall be no inferences but implementation only.
The first step is to get hold of the still existing documentation of the product and learn about it. It makes the intent of the developer clear and makes it easier to communicate with the application specialists. What you get to know through this documentation will be purely incidental but you’ll notice how it helps as you walk further into the process.
The next step is entering the information gathered into a database. There are tools which read into the RDBMS model and thus seed the model. If you use such tools you’ll be able to skim the design and get a hint about the developmental style.
Creation of tentative creation style
Representing each physical data unit (RDBMS unit) as an entity type.
Creation of tentative relationship style
For CODASYL application it is suggested to represent the set type as relationship styles.
Creation of tentative attribution
Indication of not-null systems, data types and lengths if available.
Noting down of primary keywords and indexes
Primary keywords, candidate keys and foreign keys if available should be noted down.
In this step one should avoid conjecture and conclusion until the analysis recovery stage. One is undoing the mechanics of the database and performs only straight actions. During this step you resolve three major hits which are discussed as follows.
The unit indexes will become prominent for candidate keys of the entity type most commonly. Otherwise one can look for other combination data which can only suggest but not prove a candidate key. It is highly probable that a foreign key will prove the candidate key.
It is the harder part of Design Recovery. Matching names and data types can give you a foreign key. Some DBMSs and RDBMSs let the developers announce the foreign key and their referral but most of the legacy applications do not use this method.
When queries exist, one can use it to define the foreign keys and the candidate keys and its identity.
Read our blog: Practical tips for good research paper
This is the final step for reverse engineering. Analysis recovery helps in refining the product and make it further abstract. One needs the help of application experts in order for this to be successful.
Four main hits are solved in this step which are discussed further
Removal of any remaining artefacts of the design. It should contain no important or essential information.
Removal of any derived data which exist for misguided reasons. Also examination of the data to determine if the data structure is a duplicate is a must.
Elimination of any remaining database errors. One should completely understand the database before making the conclusion that the developer erred.
Multiple information gives multiple explanations. That is the reason why it is common for reverse engineering to be based on structure and data. And forward engineering is based on a user manual basically.
Know about Technical Analysis of Stocks for Beginners: 1 Complete Guide on Technical Analysis Of Stocks for Beginners
The reverse engineering process is somewhat of an ideal method and not really quite divided into the three stages which are discussed above. There is much iteration and backtracking which is involved. Stages a few might process faster than the rest. You also need to backtrack any mistakes which are made. Anyway, this process gives a point to start from even for bigger issues.
Frequently Asked Questions
- What are the basic issues faced during reverse engineering?
Not having the right equipment.
- What is the main use of reverse engineering?
To find how a system of hardware or software or mechanics work.
- Is reverse engineering unethical?
Many companies consider RE to be unethical since one can easily reverse engineer an original product, get its design and then copy it under their own name.
- Why is RE legal?
It does not generally violate trade secret laws since it is a fair and independent way of learning information and not cheating.
- What is Reverse Engineering?: Process, Examples