Hearing the term reverse engineering can conjure up many different images in the mind of the listener. It has rather murky connotations due to some of the ways the concept has historically been used. But reverse engineering has a valid place in the world of industry and information technology. Let’s investigate this idea and how it can be used for unscrupulous or productive purposes.
What is Reverse Engineering?
Reverse engineering is basically taking something apart in order to duplicate it or improve its functionality. It is a technique that has been employed with physical objects for centuries in many different industries. In manufacturing, reverse engineering is used to disassemble a product to investigate how it is constructed and what materials are used. It can be invaluable when legacy components need to be built without the help of technical drawings. A successful industrial reverse engineering initiative requires an interdisciplinary team with expertise in all areas of the item under review.
Software reverse engineering is used for a variety of reasons. Some of the uses of the technique are to retrieve lost source code, fix bugs, improve performance or identify malicious code or malware. There can be legal ramifications when simply using reverse engineering to copy or duplicate a software product or application. Depending on the type of software under investigation and the purpose of the effort, different tools are employed when conducting software reverse engineering.
Reverse engineering and Industrial Espionage
Industrial and state-backed technological espionage can reap enormous benefits for the perpetrators. Reverse engineering is one of the tools used in industrial espionage to steal corporate and intellectual information in attempts to gain a strategic or competitive advantage. In some cases, it can pose serious security risks.
Chinese hackers have reverse-engineered spy tools that were developed by the U.S. National Security Agency (NSA). This theft of intellectual property enables the hackers, who are members of an advanced persistent threat group, to expand their espionage capabilities without directly attacking U.S. intelligence agencies. The hackers reverse-engineered tools being used against them and now have similar capabilities that were beyond their in-house technical expertise. Cybersecurity researchers indicate that evidence points to a growing cyber arms race between the U.S. and China.
Researchers studying economic data from the industrial sectors of East and West Germany from 1969 to 1989 made some startling discoveries. They found that East Germany engaged in state-sponsored industrial espionage which provided substantial economic returns to the country. One counter-intuitive result of their efforts was the depreciation of native research and development in East Germany. When the two countries were reunited, companies in the east had trouble competing with their western counterparts due to their lack of R&D skills.
More Socially Acceptable Uses of Reverse Engineering
Most instances of reverse engineering are not as sinister as those just discussed. There are many situations where the ability to reverse engineer a piece of software can be beneficial to its owners, eliminating any threat of outside entities making off with intellectual property. Some examples are:
Integrating systems – Merging systems requires data integrity across the consolidated environments. Reverse engineering offers a direct way of verifying a successful data migration or identifying areas that must be addressed before it can proceed.
Understanding how an application functions – Reverse engineering uncovers insights into the operation of the software that may not be fully understood by the business using the program. This can be a real problem during a corporate merger where the individuals with historical knowledge of an application may no longer be available for consultation.
Creating documentation – Out of date or non-existent documentation can be rectified through the use of reverse engineering to study an application and record its functional and operational details.
Reverse Engineering of Databases
A very specific use of software reverse engineering is the creation of an entity-relationship (ER) model from the data residing in a database. This process entails taking the schemas that constitute a database and converting them into an ER model that can be easily understood and compared to other models and databases. The ER models and diagrams can be used to make pre-migration decisions or simply to gain a deeper understanding of the relationships that exist in the database.
Aqua Data Studio is a powerful database management tool which supports all popular database platforms that a company might use in-house or in the cloud. Among its many outstanding features is the ability to reverse engineer existing databases to create detailed physical ER diagrams involving thousands of entities. The tool enables you to convert tables, views, relationships, and constraints as shapes, lines, and vectors to visualize complex database objects in an ER model and diagram. It’s just one more reason that Aqua Data Studio belongs in your DBA’s toolbox.